我正在尝试使用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”并附带一个选择,但它不会运行: - /
先谢谢你帮助我!
答案 0 :(得分: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)
});