使用LINQ比较两个列表项

时间:2015-05-16 13:29:12

标签: c# linq

我有一个具有以下属性的对象

public class Name
{
    public string FirstName 
    {
        get;
        set;
    }
    public string LastName
    {
        get;
        set;
    }

}

我得到名称对象列表为 NameList ,其中包含两个对象作为项目

我想比较列表中的这两个对象,以获得具有相同 FirstName 的对象。我一直在寻找过去2小时的解决方案。

在Name对象列表中,我得到两个Name对象为

ListItem 1:FirstName:Steve;              姓氏:罗杰斯;

ListItem 2:              名字:史蒂夫;              姓氏:大卫;

我想要的是将这些与列表项进行比较检查FirstName属性是否相同

2 个答案:

答案 0 :(得分:1)

您想要找到所有重复项。

var duplicates = NameList.GroupBy(o => o.FirstName).Where(g => g.Skip(1).Any()).SelectMany(g => g);  

答案 1 :(得分:1)

如果您希望获得具有相同FirstName的所有对象,则应使用GroupBy:

var groups = NameList.GroupBy(li => li.FirstName);