-1

合計を取得する文字列への拡張メソッドを作成する方法 create 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

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 に答える
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 に答える