【发布时间】:2011-05-20 21:22:51
【问题描述】:
我有一个 DataTable,我想检查其中三列中的值是否唯一。如果没有,最后一列应该填入组合值第一次出现的行号。
比如这张表:
ID Name LastName Age Flag
-------------------------------------
1 Bart Simpson 10 -
2 Lisa Simpson 8 -
3 Bart Simpson 10 -
4 Ned Flanders 40 -
5 Bart Simpson 10 -
应该导致这个结果:
Line Name LastName Age Flag
-------------------------------------
1 Bart Simpson 10 -
2 Lisa Simpson 8 -
3 Bart Simpson 10 1
4 Ned Flanders 40 -
5 Bart Simpson 10 1
我通过使用两个嵌套的 for 循环迭代 DataTable 并比较值来解决这个问题。虽然这适用于少量数据,但当 DataTable 包含大量行时,会变得很慢。
我的问题是:关于数据量可能在 100 到 20000 行之间变化,这个问题的最佳/最快解决方案是什么?
有没有办法使用 LINQ 做到这一点? (我不太熟悉,但我想学!)
【问题讨论】:
标签: c# .net vb.net performance datatable