-2

すべての要素を 1 つの列に集約して、linq で文字列を作成するにはどうすればよいですか

例: 私は次の名前のテーブルを持っています:Items という名前のテーブルの 1 つの列: ListItem

                    ListItem
                      1
                      2
                      3

Column ListItem のすべての要素を選択して string : 123 にする方法

(列の各値を選択して結合しないでください)

みんなの助けをありがとう!!!

4

4 に答える 4

0

型付きデータをリストとして使用しており、プロパティとして id を持っていると仮定します。次に、ID を 1 つの文字列に集約するには、次のようにします。

string.Join(" ", listofEmployees.Select(e=>e.Id));

これは次のように印刷されます

1 2 3
于 2012-08-14T11:55:27.350 に答える
0

a を使用しSelectて必要な値を抽出し、それらを文字列に結合することができますString.Join

var table = new DataTable("Items");
table.Columns.Add(new DataColumn("LiItem", typeof(int)));
table.Rows.Add(1);
table.Rows.Add(2);
table.Rows.Add(3);

Console.WriteLine(String.Join("", table.AsEnumerable().Select(r => r["LiItem"])));

出力:

123

于 2012-08-14T11:56:39.110 に答える
0

「集約」と言っているので、これが実際の LINQ メソッドであることを知りたいと思うかもしれません。

var a = new[]{"1","2","3"};
var concatenated = a.Aggregate("",(t,s)=>t+s);
于 2012-08-14T12:01:32.537 に答える
-1

このメソッドはIEnumerableではなく文字列の配列を必要とするため、 string.Join を使用したすべての回答は不完全だと思います。

これはうまくいくはずです。

var data = ...
var result = string.Join(" ", data.Select(x => x.ListItem).ToArray());

これにより、次の結果が得られます。

"1 2 3"
于 2012-08-14T12:14:44.427 に答える