在 Linq 中,distinct 運算子提供了一種從表中消除重複記錄的簡單方法。但是,預設情況下,它會比較整個記錄,而不僅僅是特定欄位。
當您打算僅根據單一欄位(例如範例中的r.Text)過濾重複記錄時,需要修改方法.
使用您提供的查詢:
var query = (from r in table1 orderby r.Text select r).distinct();
將防止重複,但基於所有欄位的組合內容,而不僅僅是r.Text.
要實現您想要的結果,請考慮以下查詢:
table1.GroupBy(x => x.Text).Select(x => x.FirstOrDefault());
此查詢將使用GroupBy 按Text 欄位對 table1 進行分組。在每個群組中,它使用 FirstOrDefault() 選擇第一個項目。產生的集合將包含文字欄位不同的行。
以上是如何刪除LINQ中基於特定欄位的重複記錄?的詳細內容。更多資訊請關注PHP中文網其他相關文章!