在 Linq 中,distinct 运算符提供了一种从表中消除重复记录的简单方法。但是,默认情况下,它会比较整个记录,而不仅仅是特定字段。
当您打算仅根据单个字段(例如示例中的 r.Text)过滤重复记录时,需要修改方法.
使用您提供的查询:
var query = (from r in table1 orderby r.Text select r).distinct();
将防止重复,但基于所有字段的组合内容,而不仅仅是r.Text.
要实现您想要的结果,请考虑以下查询:
table1.GroupBy(x => x.Text).Select(x => x.FirstOrDefault());
此查询将使用 GroupBy 按 Text 字段对 table1 进行分组。在每个组中,它使用 FirstOrDefault() 选择第一个项目。生成的集合将包含文本字段不同的行。
以上是如何删除LINQ中基于特定字段的重复记录?的详细内容。更多信息请关注PHP中文网其他相关文章!