7

假设我有以下课程:

public class Test{
    public string Length { get; set; }
    public string Width { get; set; }
    public string Height { get; set; }
    public int Count { get; set; }
    public string Label { get; set; }
}

我想找到长度和标签具有相同值的项目,并计算每个项目有多少。到目前为止,我的代码如下所示:

var dups = testlist.GroupBy(i => new { i.Length, i.Label })
                   .Where(g => g.Count() >= 1)
                   .Select(g => new { Length = g.Key.Length, Label = g.Key.Label, 
                                      Count = g.Count() });

但问题是,var 中的对象不再具有 width 或 height 属性(它们在 g.Key 中不存在)。无论如何在结果中保存其他属性的同时基于两个属性查找重复项?

4

1 回答 1

18

在这之后

testList
  .GroupBy(i => new { i.Length, i.Label })
  .Where(g => g.Count() >= 1)

你实际上有一个IEnumerable<IEnumerable<Test>>. 这是一份受骗者名单。你还想要什么?

于 2012-10-23T15:01:49.877 回答