我在这里遇到了精神障碍,我希望我错过了一些明显的东西。
无论如何,假设我有一个如下所示的表:
ID 查找值排序顺序 ============================================ 1 个 1000 2 B 2000 3 B 2000 4 C 3000 5℃ 4000
我正在尝试使用 Linq 查找LookupValue
相同但排序顺序不同的位置(这ID
是我的数据库表上的 PK,与本练习无关)。
我认为最简单的方法是按LookupValue
和分组SortOrder
,然后找到LookupValue
结果中出现两次以上的地方。
现在,我获取分组表的代码如下所示:
Dim KeySortPairs = From d In MyDataTable _
Group By Key = d(LookupValue).ToString(), SortOrder = d(SortOrder).ToString() _
Into Group _
Select Key, SortOrder
查看调试输出,上面的代码产生了这个结果(这是正确的):
键排序顺序 ================= 一个1000 B 2000 C 3000 C 4000
为了得到重复Key
的,我正在查看这样的结果:
For Each Entry In KeySortPairs.Where(Function(t) t.Key.Count() > 1)
'Multiple Sort Orders!!'
Next
但是,在此代码中,返回分组结果中的每个条目。我是否遗漏了什么,或者不应该只给我Key
出现不止一次的条目?我认为由于我对VB.NET 的舒适度较低,我犯了Count()
一个小错误,但我无法弄清楚——我尝试将WHERE
一样的东西。