2009-10-18 66 views

回答

3

您可以使用MoreLINQ項目中的DistinctBy。基本上,您可以從數據行指定您感興趣的列的投影,並使用它。例如:

var rows = DataTable.AsEnumerable() 
        .DistinctBy(row => new { Name = row["Name"], 
              Age = row["Age"] }); 

當你說「默認必須工作」,如果你有一個正常的主鍵列基本上不會發生。具有不同主鍵值的兩行不是彼此的重複項,因爲它們在數據上有所不同。

另一種方法是將項目數據行不帶即主鍵列,然後使用正常的Distinct方法。

+0

MoreLINQ很酷。感謝指針! – 2009-11-17 06:09:10

0

也許你可以使用defaultview.rowfilter來啓動一個按唯一列分組的查詢,並且選擇MIN(或MAX)RowId作爲保留的行。

看看this問題的更多信息abour查詢。