0

Linq を使用していくつかのリスト項目をマージしようとしています。

いくつかの変数を含むカスタム オブジェクトのリストがあります: string1、string2 double1 date1。

string2 を共通の文字列として持つリストの項目をグループ化したいので、double1 を追加する必要があります。

最後に、最終アイテムの最近の日付を保存したいと思います。

最初の文字列 (string1) については問題ありません。すべての文字列を単純に連結できると想像できます。

これは、プロセス前後のデータの例です。

"toto" "test" 0.10 Datetime(04-04-2013)
"to" "test" 0.80 Datetime(01-01-2013)
"toto" "teeeest" 0.10 Datetime(01-01-2013)
"toto" "test" 0.10 Datetime(02-01-2013)


"toto" "test" 1.00 DateTime(04-04-2013)
"to" "teeeest" 0.10 DateTime(01-01-2013) 

したがって、linqを正しく使用できませんが、選択を囲んで「groupby」を使用しようとしましたが、実行されません:-/

私を助けてくれてありがとう!

4

1 に答える 1

4
var myList = new List<MyObject>();
var result = 
    myList.GroupBy(x => x.string2)
          .Select(g => new MyObject {
             string1 = string.Join(",", g.Select(v => v.string1)),
             //or g.Min(v => v.string1)
             //or g.First(v => v.string1) 
             //or whatever you want
             string2 = g.Key,
             double1 = g.Sum(v => v.double1),
             date1 = g.Max(v => v.date1)
          });
于 2013-05-29T14:32:57.077 に答える