【问题标题】:Linq groupby issueLinq groupby 问题
【发布时间】:2013-05-29 22:32:57
【问题描述】:

我正在尝试使用 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,但我尝试使用带有 select 的“groupby”,但它没有运行:-/

提前感谢您的帮助!

【问题讨论】:

    标签: c# linq linq-to-sql


    【解决方案1】:
    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)
              });
    

    【讨论】:

      猜你喜欢
      • 2011-06-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-23
      • 1970-01-01
      相关资源
      最近更新 更多