c# - 从列表中过滤重复项

标签 c# .net linq list duplicates

我有List<Location> locations .

Location类有一个属性 Coordinates - 假设一个字符串。

如何删除具有重复坐标的位置并将它们放入单独的列表中?有两个列表 - 一个用于重复,一个没有。

最佳答案

创建 IEqualityComparer< Locations > 将是您的首要任务之一(它允许您根据您选择的属性比较对象)。

如果您想使用 Linq 获取唯一项,则可以使用 Distinct() 方法。

然后您可以从原始列表中删除这些项目,这将留下一组重复项。

var distinctObjects = originalList.Distinct();
var duplicateList = originalList.Except(distinctObjects);

您需要为 distinct 使用自定义相等比较器,但不需要 except。

关于c# - 从列表中过滤重复项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4921264/

相关文章:

c# - C#中的属性初始化

.net - UseStatusCodePagesWithReExecute() 不适用于 .NET Core 3.1

c# - 循环 LINQ 查询并将结果追加到 DataTable

c# - 在 Razor 中将小数字段显示为 int

c# - EF Code First 配置复制记录

.net - 为什么 AndAlso 不能替代 And

c# - 在列表集合中查找对象

mysql - 如何只获取列表中指定的项目?

c# - RowCommand 未触发

c# - 如何确定哪些字体包含特定字符?