LINQ对多个属性进行分组

时间:2014-06-03 16:58:43

标签: c# linq

我喜欢根据一些属性对对象集合进行分组。我可以对它们进行分组,但在对它们进行分组后,如何将每组结果放入各自的列表中,以便我相应地处理每个列表。这是我到目前为止的一个例子:

public class INPRKData
{
    public string rptDate { get; set; }
    public string clientNumber { get; set; }
    public string fileNumberId { get; set; }
    public string cycleType { get; set; }
    public string streamType { get; set; }
    public string branchCode { get; set; }
}

基于三个属性进行分组:clientNumber,fileNumberId和streamType ...

var grouped =
    from d in INPRKDataCollection
    group d by new { d.clientNumber, d.fileNumberId, d.streamType };

2 个答案:

答案 0 :(得分:0)

IEnumerable<List<INPRKData>> lists = from grp in grouped
                                     select grp.ToList()

答案 1 :(得分:0)

每个分组都会实现IEnumerable<INPRKData>并迭代组中的项目,因此您可以迭代这些组:

foreach(var group in grouped)
{
    var list = group.ToList();   // the items in that group
    ...
}