SelectMany簡單應用

2021-10-10 21:21:41 字數 692 閱讀 2238

示例:

現有資料庫表person和dog,人和狗是1對多的關係

person有id,name,gender欄位

dog有id,personid(關聯person),name欄位

_db.person.include(x=>x.dog).tolist();
當我們按上面的方法進行操作,獲取的是person的列表

如果仍然要以person為主體,但是想獲取dog的列表,這時候就用到selectmany

_db.person.include(x=>x.dog)

.selectmany(x=>x.dog, (x,y)=>new ).tolist();

這時候會返回以dog為主體的資料(數量和dog表資料一致,欄位是上面匿名類定義的字段)。

selectmany之後還可以用groupby進行合計,特殊情況下使用還是比較方便的。

selectmany還有其他的寫法,不過個人認為上面寫法最為清晰,

簡化的寫法還有_db.person.selectmany(x=>x.dog.select(a=>a.name)).tolist();

這樣只是獲取了狗狗名稱的列表。

Linq中的SelectMany方法

先定義一些我們使用的輔助類 class school set class class set class student private string m name public string name set private int m public int set 說明 類school下面有乙個...

SelectMany 和 Select的區別

如果我們看這兩個擴充套件函式的定義很容易明白 select是把要遍歷的集合ienumerable逐一遍歷,每次返回乙個t,合併之後直接返回乙個ienumerable,而selectmany則把原有的集合ienumerable每個元素遍歷一遍,每次返回乙個ienumerable,把這些ienumera...

SelectMany 和 Select的區別

如果我們看這兩個擴充套件函式的定義很容易明白 select 是把要遍歷的集合 ienumerable 逐一遍歷,每次返回乙個t 合併之後直接返回乙個ienumerable 而selectmany 則把原有的集合 ienumerable 每個元素遍歷一遍,每次返回乙個ienumerable 把這些ie...