下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第LINQ操作符SelectMany的用法SelectMany操作符提供了將多個(gè)from子句組合起來的功能,相當(dāng)于數(shù)據(jù)庫中的多表連接查詢,它將每個(gè)對象的結(jié)果合并成單個(gè)序列。
示例:
student類:
usingSystem;
usingSystem.Collections.Generic;
usingSystem.Linq;
usingSystem.Text;
usingSystem.Threading.Tasks;
namespaceSelectMany操作符
///summary
///學(xué)生類
////summary
publicclassStudent
//姓名
publicstringName{get;set;}
//成績
publicintScore{get;set;}
//構(gòu)造函數(shù)
publicStudent(stringname,intscore)
this.Name=name;
this.Score=score;
}
teacher類:
usingSystem;
usingSystem.Collections.Generic;
usingSystem.Linq;
usingSystem.Text;
usingSystem.Threading.Tasks;
namespaceSelectMany操作符
///summary
///Teacher類
////summary
publicclassTeacher
//姓名
publicstringName{get;set;}
//學(xué)生集合
publicListStudentStudents{get;set;}
publicTeacher(stringname,ListStudentstudents)
this.Name=name;
this.Students=students;
}
Program類
usingSystem;
usingSystem.Collections.Generic;
usingSystem.Linq;
usingSystem.Text;
usingSystem.Threading.Tasks;
namespaceSelectMany操作符
classProgram
staticvoidMain(string[]args)
//使用集合初始化器初始化Teacher集合
ListTeacherteachers=newListTeacher{
newTeacher("徐老師",
newListStudent(){
newStudent("宋江",80),
newStudent("盧俊義",95),
newStudent("朱武",45)
newTeacher("姜老師",
newListStudent(){
newStudent("林沖",90),
newStudent("花榮",85),
newStudent("柴進(jìn)",58)
newTeacher("樊老師",
newListStudent(){
newStudent("關(guān)勝",100),
newStudent("阮小七",70),
newStudent("時(shí)遷",30)
//問題:查詢Score小于60的學(xué)生
//方法1:循環(huán)遍歷、會有性能的損失
foreach(Teachertinteachers)
foreach(Studentsint.Students)
if(s.Score60)
Console.WriteLine("姓名:"+s.Name+",成績:"+s.Score);
//查詢表達(dá)式
//方法2:使用SelectMany延遲加載:在不需要數(shù)據(jù)的時(shí)候,就不執(zhí)行調(diào)用數(shù)據(jù),能減輕程序和數(shù)據(jù)庫的交互,可以提供程序的性能,執(zhí)行循環(huán)的時(shí)候才去訪問數(shù)據(jù)庫取數(shù)據(jù)
//直接返回學(xué)生的數(shù)據(jù)
varquery=fromtinteachers
fromsint.Students
wheres.Score60
selects;
foreach(variteminquery)
Console.WriteLine("姓名:"+item.Name+",成績:"+item.Score);
//只返回老師的數(shù)據(jù)
varquery1=fromtinteachers
fromsint.Students
wheres.Score60
selectnew{
teacherName=t.Name,
student=t.Students.Where(p=p.Score60).ToList()
foreach(variteminquery1)
Console.WriteLine("老師姓名:"+item.teacherName+",學(xué)生姓名:"+item.student.FirstOrDefault().Name+",成績:"+item.student.FirstOrDefault().Score);
//使用匿名類返回老師和學(xué)生的數(shù)據(jù)
varquery2=fromtinteachers
fromsint.Students
wheres.Score60
selectnew{teacherName=t.Name,studentName=s.Name,studentScore=s.Score};
foreach(variteminquery2)
Console.WriteLine("老師姓名:"+item.teacherName+",學(xué)生姓名:"+item.studentName+",成績:"+item.studentScore);
//使用查詢方法
varquery3=teachers.SelectMany(p=p.Students.Where(t=t.Score60).ToList());
foreach(variteminquery
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 外勤機(jī)械工復(fù)試考核試卷含答案
- 刨插工安全培訓(xùn)效果評優(yōu)考核試卷含答案
- 玻璃制品手工成型工安全宣傳強(qiáng)化考核試卷含答案
- 海鹽采收工班組建設(shè)競賽考核試卷含答案
- 絞車操作工安全素養(yǎng)競賽考核試卷含答案
- 磚瓦生產(chǎn)工安全素養(yǎng)測試考核試卷含答案
- 海南房產(chǎn)中介培訓(xùn)課程
- 酒店員工培訓(xùn)計(jì)劃實(shí)施與跟蹤制度
- 酒店客房用品更換與補(bǔ)給制度
- 超市員工培訓(xùn)及業(yè)務(wù)知識制度
- 音樂場所衛(wèi)生管理制度
- 2026云南昭通市搬遷安置局招聘公益性崗位人員3人備考題庫及答案詳解(考點(diǎn)梳理)
- 標(biāo)書財(cái)務(wù)制度
- 四川發(fā)展控股有限責(zé)任公司會計(jì)崗筆試題
- 2026中國電信四川公用信息產(chǎn)業(yè)有限責(zé)任公司社會成熟人才招聘備考題庫及一套答案詳解
- 2025-2030心理健康行業(yè)市場發(fā)展分析及趨勢前景與投資戰(zhàn)略研究報(bào)告
- 技術(shù)副總年終總結(jié)
- 《馬年馬上有錢》少兒美術(shù)教育繪畫課件創(chuàng)意教程教案
- 天津市專升本高等數(shù)學(xué)歷年真題(2016-2025)
- 2025山西焦煤集團(tuán)所屬華晉焦煤井下操作技能崗?fù)艘圮娙苏衅?0人筆試參考題庫帶答案解析
- 兒童骨科主任論兒童骨科
評論
0/150
提交評論