c# - 使用 Linq 查询查找 DataTable 中列值不唯一的所有行

标签 c# linq linq-to-sql dataset

我正在尝试编写一个 Linq to SQL 查询,该查询返回 DataTable 中列值 (TxnNumber) 不唯一的所有行。到目前为止,我有下面的 Linq to SQL,其中 dt 是包含字段 TxnNumber 的 DataTable。我认为我非常接近,但是智能感知提示 CONTAINS 子句。我已经尝试指定我只想返回子选择中的 TxnNumber 字段,但是它不会编译。谁能看出我做错了什么?

dt.AsEnumerable().Where(u => u.TxnNumber.Contains (dt.AsEnumerable().GroupBy(t => t.TxnNumber).Count() > 1));

最佳答案

试试这个

(from r in dt.AsEnumerable()
group r by r.TxnNumber into grp
where grp.Count() > 1
select grp).SelectMany(x=>x).ToList();

关于c# - 使用 Linq 查询查找 DataTable 中列值不唯一的所有行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30765061/

相关文章:

c# - 将 Linq-to-SQL 中的计算属性映射到实际 SQL 语句

c# - 使用 Console.ReadKey() 方法和 ConsoleKeyInfo 变量将扩展的 ASCII 字符转换为正确的表示

c# - 使用 linq 时,在 .ForEach() 之前调用 .Any() 有什么好处吗?

c# - LINQ的Left outer join列选择

c# - 使用 LINQ 有什么方法可以做到这一点?

c# - Linq to sql/C# - 多处搜索键/值对

linq-to-sql - .NET 4 的 DataContext 编译查询问题

c# - 为什么 Contains 比较对象与 == 不同?

c# - 从 DOMAIN\Username c# 中提取用户名

c# - 在 MulticastDelegate 上调用 BeginInvoke?