-1

如何为字符串创建扩展方法以获取总和创建 Sumstring 扩展方法

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.Sumstring(p => p.name) }).ToList();

dataGridView1.DataSource=query;

我连接数据库的代码是什么

4

2 回答 2

0

如果您只想连接该组中的字符串,则可以使用内置Aggregate函数:

var query = (from p in obj 
             group p by p.ID into g
             select new 
             { id = g.Key, sum = g.Aggregate((tot, next) => tot + "," + next) }
            ).ToList();
于 2013-04-11T21:39:14.363 回答
0

您尚未指定SumString真正返回的内容,但看起来您正在谈论所有源集合元素的字符串连接。

可以使用String.Join以下方法轻松完成:

public static class EnumerableOfString
{
    public static string SumString<TSource>(this IEnumerable<TSource> source, Func<TSource, string> selector, string separator = null)
    {
        return String.Join(separator ?? string.Empty, source.Select(i => selector(i)));
    }
}

该方法允许以下调用:

g.SumString(p => p.name)

使用string.Empty默认分隔符并指定自定义分隔符:

g.SumString(p => p.name, ",")
于 2013-04-11T19:06:26.667 回答