分组和聚合对象列表

时间:2010-07-01 03:17:03

标签: c# linq linq-to-objects

我有一个像这样结构化的数据列表:

Field1  Field2  Field3
1   1   "abc"
1   1   "def"
1   2   "123"
1   2   "456"

我希望能够合并这些数据,所以我最终得到每个Field1& Field2和Field3数据连接在一起。所以在上面的例子中我会得到:

Field1  Field2  Field3
1   1   "abcdef"
1   2   "123456"

我想使用linq / query表达式。

1 个答案:

答案 0 :(得分:3)

var query =
    from row in rows
    group row by new { row.Field1, row.Field2 } into g
    select new RowClass
    {
        Field1 = g.Key.Field1,
        Field2 = g.Key.Field2,
        Field3 = g.Aggregate(
                    new StringBuilder(), 
                    (sb, grp_row) => sb.Append(grp_row.Field3))
                  .ToString()
    }