Linq groupby issue



我正在尝试使用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"与一个select封闭,但它不运行:-/

提前感谢帮助我!

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)
          });

最新更新