获取列表中的重复项列表,但只能从一列中获取

时间:2017-01-30 22:20:51

标签: c# linq

我们说List<T>其中T有两个属性:

public int ID { get; set;}
public decimal Amount {get; set;}

原始列表results看起来像这样......

ID    Amount
 1      5.50
 2      6.50
 3      6.50
 4      7.00

我需要提取一个新的列表,其中Amount列中有任何重复项。因此,在这种情况下,生成的List<T>将是:

ID    Amount
 2      6.60
 3      6.50

这里有很多线索可以解决这个一般性的问题,从这里我已经到了这里:

var duplicateItems = results.GroupBy(r => r.Amount)
                    .Where(x => x.Count() > 1).Select(x => x.Key);

但是这给我一个看起来像这样的列表:

6.50

谢谢!

修改

此:

var duplicateItems = results.GroupBy(r => r.Amount)
                      .Where(x => x.Count() > 1).ToList();

也让我这样:

6.50

4 个答案:

答案 0 :(得分:2)

results.GroupBy(r => r.Amount).Where(g => g.Count() > 1).SelectMany(g => g);

在本地测试,应该给出所需的结果。

答案 1 :(得分:0)

def browse2(lst):
        if isinstance(lst,list):
            for l in lst:
                browse2(l)
        else: print(lst)

答案 2 :(得分:0)

layout false

答案 3 :(得分:0)

这就是你所需要的,我不明白为什么你拒绝我的评论

var duplicateItems = results.GroupBy(r => r.Amount)
                      .Where(x => x.Count() > 1)