Linq 去重簡介

2021-10-02 05:55:09 字數 713 閱讀 8778

說到去重首先想到的便是distinct,但是也不是所有地方都適用。下面就講乙個不適用的場景,並給出解決方案。

var list = await query.getall().asnotracking().select(x => x.provincecode).distinct().tolistasync();
這段**獲取 provincecode 集合,然後「去重」顯示。當然這是我們希望的方向。但事實並非是這樣。返回的資料還是一堆重複的。所以這個場景distinct並不適用。

那應該怎麼辦呢?我們不妨嘗試使用 sql 的思路來解決這個問題。在 sql 也有distinct去重的方法,同時還有「分組」的概念,也就是 group by。

那下面我們嘗試使用 group by 來實現「去重」的業務。在 linq 中也是 group by ,其實 linq 的很多思想和 sql 都是相同的,所以 linq 裡面 group by 的用法也差不多。

var list = await query.getall().asnotracking().select(x => x.provincecode)

.groupby(x => new ).select(x => x.first()).tolistasync();

這樣「去重」的目的就達到了。

Linq去重(自定義字段)

業務場景,接受乙個datatable 根需求需要按照品號去重 業務場景 明細表存在多筆相同品號 在這樣的場景下不能簡單的使用如下寫法去重 var list tempdatatable.asenumerable where p p total inv qty todecimal p total iss...

LINQ解決根據某個欄位去重

想要list結果重複 的資料很簡單,只要.dinstinct 就好了 但是如果想要根據某個字段去除重複的資料,上面的方法就幫不上忙了,我們需要重寫乙個方法,直接上例子吧 serializable public class homepageusermodel public string titleus...

LINQ教程一 LINQ簡介

一 為什麼要使用linq 要理解為什麼使用linq,先來看下面乙個例子。假設有乙個整數型別的陣列,找到裡面的偶數並進行降序排序。1 using system 2using system.collections.generic 3using system.linq 4using system.text...