在 DataTable 中查找非重复行

Find a Non-Duplicate Row in DataTable

我目前正在扫描 DataTable 以在 "ColumnA"

中查找非重复值

请注意,我不是在寻找 DISTINCT 值,因为那样会 return 比结果行多一个。

目前,当我 google "c# Find non-duplicate row" 时,我只收到处理删除重复项的结果,这不是我想要做的。

例如:

如果 'ColumnA' 的每一行包含:

1

1

1

2

1

我希望能够提取包含“2”作为其值的行。

是否有我可以用来执行此操作的 LINQ 表达式?我发现了其他一些 SO 问题并找到了接近的答案(除了它们再次 returned DISTINCT 行)。

我知道 SQL 我可以使用 Count() 表达式来计算一行的实例,但我是从 C# class.

提前致谢。

在 LINQ 和 SQL 中,您将为此使用分组依据构造,然后按计数限制结果。不同之处在于,在 SQL 中您将使用 HAVING,而在 LINQ 中您将继续使用 Where.

这是它在 LINQ 中的样子:

var res = source
    .GroupBy(item => item.ColumnA)
    .Where(g => g.Count() == 1)
    .Select(g => g.Single());