c# - 查找具有相似和不同字段的记录

标签 c# linq

来自包含以下信息(id、名称、地址、代码)的对象列表:

1,Andrea,15th St,123
2,Sarah,15th St,124
3,Andrea,15th St,134
4,Andrea,16th St,124

我想检索名称和地址相同但代码不同的行。在这个例子中:

1,Andrea,15th St,123
3,Andrea,15th St,134

我已经开始使用 Linq,第一次了解它。我能够找到重复项:

var sameEmail =
        from l in list
        group l by new { l.name, l.address} into na
        where na.Count() > 1
        select na.Key;

但我找不到一种方法来确保我只获取具有不同代码的记录。有了它,我也会得到最后一行,但由于它有相同的代码,我不想要它。有没有办法用 Linq 做到这一点?或者 C# 中的任何其他方式?

谢谢!

最佳答案

您可以使用Distinct 来获得不同的值

var sameEmail =
    from l in list
    group l by new { l.name, l.address} into na
    where na.Select(a => a.code).Distinct().Count() > 1
    select na.Key;

关于c# - 查找具有相似和不同字段的记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34466646/

相关文章:

c# - 如何在C#中使用Ienumerable获取替代元素

c# - WebAPI One Asp.Net (ASP5/vNext) 中的分页

c# - 如何同步三个类(class)?

c# - 通过 C# 在运行时编译 swf?

c# - 获取所有连接的智能卡的列表

c# - 使用 LINQ 删除任何重复的值

c# - 使用 Lambda 或经典表达式使用 LinQ 列出类别及其产品数量

C# 根据多个条件过滤列表中的项目

c# - .NET 中最精确的计时器是什么?

linq - 如何使用 EF Code First 表示期权计算列?