karimi.ali2005
یک شنبه 25 فروردین 1392, 22:04 عصر
آیا این امکان وجود دارد تابع یا extension method نوشت که جمع چند رشته را به دست آورد شبیه sum خود دستورات linq با این تفاوت که رشته ها را به هم الحاق کند
من یک نمونه کد دارم مشکلی که داره فقط روی لیست های جواب می دهد زمانی که به دیتابیس وصل میشی خطا میده
استفاده از لیست وبدون خطا
List<myclass> obj = new List<myclass>()
{
new myclass(){ID=1,name="ali",number=1},
new myclass(){ID=1,name="karimi",number=2},
new myclass(){ID=2,name="mohammad",number=4},
new myclass(){ID=2,name="sarbandi",number=5},
};
var query = (from p in obj
group p by p.ID into g
select new { id = g.Key, sum = g.SumString2(p => p.name, " ") }).ToList();
dataGridView1.DataSource = query;
extension method
public static class EnumerableOfString
{
public static string SumString2<TSource>(this IEnumerable<TSource> source, Func<TSource, string> selector, string separator = null)
{
return String.Join(separator ?? string.Empty, source.Select(i => selector(i)));
}
}
ولی زمانی که از کد زیر استفاده می کنم در زمان اجرا خطا میده
testtelContext db = new testtelContext();
var query2 = (from p in db.T5
group p by p.ID into g
select new { id = g.Key, sum = g.SumString2(p => p.name, " ") }).ToList();
خطایی که در زمان اجرا می دهد
102844
آیا تابعی میشه برای این کار نوشت وتابعی وجود دارد؟
با تشکر
من یک نمونه کد دارم مشکلی که داره فقط روی لیست های جواب می دهد زمانی که به دیتابیس وصل میشی خطا میده
استفاده از لیست وبدون خطا
List<myclass> obj = new List<myclass>()
{
new myclass(){ID=1,name="ali",number=1},
new myclass(){ID=1,name="karimi",number=2},
new myclass(){ID=2,name="mohammad",number=4},
new myclass(){ID=2,name="sarbandi",number=5},
};
var query = (from p in obj
group p by p.ID into g
select new { id = g.Key, sum = g.SumString2(p => p.name, " ") }).ToList();
dataGridView1.DataSource = query;
extension method
public static class EnumerableOfString
{
public static string SumString2<TSource>(this IEnumerable<TSource> source, Func<TSource, string> selector, string separator = null)
{
return String.Join(separator ?? string.Empty, source.Select(i => selector(i)));
}
}
ولی زمانی که از کد زیر استفاده می کنم در زمان اجرا خطا میده
testtelContext db = new testtelContext();
var query2 = (from p in db.T5
group p by p.ID into g
select new { id = g.Key, sum = g.SumString2(p => p.name, " ") }).ToList();
خطایی که در زمان اجرا می دهد
102844
آیا تابعی میشه برای این کار نوشت وتابعی وجود دارد؟
با تشکر