我用到的 Linq 擴充套件方法

2022-04-03 12:10:32 字數 1698 閱讀 7710

前提:

public

list

<

zhszsubjectentity

> _sublist = 

newlist

<

zhszsubjectentity

>();//頁面接受了乙個存在實體的list集合1,.

where

().select()

.where

()條件篩選     

.select()   .查詢

例如:var

_listids = _sublist.where(s => ids.contains(s.fid)).select(s => s.fparentid).tolist();

varsubidsinresult =_sublist.select(x => x.fsubjectid).distinct().tolist();

條件過濾

var q= 

from

r in

資料庫where條件;

if(x==x)

else

q.tolist();

2, .

single

() 和 .

single

ordefault()

.single

()  必須並且只能返回一條資料

.single

ordefault() 只能返回空或者一條資料

例如:var

bo = _sublist.single(q => q.fid == fb).fstate;

varbo = _sublist.

single

ordefault

(q => q.fid == fb).fstate;

3,.distinct().

distinct

()去掉相同資料

例如:var

_listids =_sublist.where(s => ids.contains(s.fparentid)).select(s => s.fid).tolist();

_listids.addrange(ids.tolist().convertall(s => (

guid

)s));

_listids = _listids.distinct().tolist();

4, .

intersect().

intersect

() 取2個集合的交集

varexistsubidlist = 集合1

.intersect(集合2

).tolist();

5,.except().

except

() 取集合1和集合2的差集

varq2 = 集合1

.except(集合2

).tolist();

6,.any()

.any() 確定序列是否包含元素

一般用於判斷

if(_

sublist 

.any())

else

7,.contains().

contains

()  比較,是否包含

比如:var

_listids=_sublist.where(s=>ids.contains(s.fparentid)).select(s=>s.fid).tolist();

LinQ 擴充套件方法

本節主要講解擴充套件方法,涉及 linq 的具體知識不多。net framework 為程式設計人員提供了很多的類,很多的方法,但是,不論 net framework 在類中為我們提供了多麼多的方法,有時候仍然不能滿足我們的需求,例如 你想讓字串物件具有topascal方法,含義就是將字串轉化為 p...

LinQ 擴充套件方法

本節主要解說擴充套件方法,涉及 linq 的詳細知識不多。net framework 為程式設計人員提供了非常多的類,非常多的方法,可是,不論 net framework 在類中為我們提供了多麼多的方法,有時候仍然不能滿足我們的需求,比如 你想讓字串物件具有topascal方法,含義就是將字串轉化為...

Linq擴充套件方法

如果要擴充套件linq查詢方法集,只需要為ienumerable擴充套件方法。第一種 擴充套件聚合方法,類似已有python基礎教程的max min,可以給具體型別擴充套件,也可以給泛型擴充套件。using system using system.collections using system.c...