日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

Linq無聊練習系列6--Any/All/Contains/Concat/U

系統 1889 0

/*********************Any/All/Contains/Concat/Union/Intersect/Except/take/skip/SqlMethods操作練習**********************************/
??????????? //判斷沒有成績的學生
??????????? var list = from s in ctx.T_Student
?????????????????????? where !s.T_Score.Any()
?????????????????????? select s;
??????????? //判斷有成績大于80的學生
??????????? var list1 = (from s in ctx.T_Student
???????????????????????? where s.T_Score.Any(t => t.score > 80)
???????????????????????? select s).Distinct();
??????????? //所有科目成績大于80的學生
??????????? var list2 = from s in ctx.T_Student
??????????????????????? where s.T_Score.All(t=>t.score>80)
??????????????????????? select s;
??????????? //查詢黃陽是否參加過考試
??????????? string[] names = { "黃陽"};
??????????? var list4 = from s in ctx.T_Score
??????????????????????? where names.Contains(s.T_Student.stuName)
??????????????????????? select s;
??????????? //查詢黃陽是否參加過考試
??????????? var list3 = from s in ctx.T_Score
??????????????????????? where (new string[] { "黃陽" }).Contains(s.T_Student.stuName)
??????????????????????? select s;
??????????? //參加過考試但是不是黃陽的同學
??????????? var list5 = from s in ctx.T_Score
??????????????????????? where !(new string[] { "黃陽" }).Contains(s.T_Student.stuName)
??????????????????????? select s;
??????????? //contains也可以包含一個對象,如查詢那些學生參加了課程編號為001的第一個同學,對于contains只能包含一個實體,不能保護實體集
??????????? var temp1 = (from s in ctx.T_Score
??????????????????????? where s.stuNumber == "001"
??????????????????????? select s).First();
??????????? var result = ctx.T_Student.Where(p=>p.T_Score.Contains(temp1));
??????????? //查找黃陽和黃波的所有成績
??????????? string[] names1 = {"黃陽","黃波"};
??????????? var result2 = ctx.T_Score.Where(f=>names1.Contains(f.T_Student.stuName));
??????????? //或者也可以這樣
??????????? var result3 = from s in ctx.T_Score
????????????????????????? where (new string[] { "黃陽", "黃波" }).Contains(s.T_Student.stuName)
????????????????????????? select s;
??????????? //對于concat,連接不同的集合,不會自動過濾相同項,而且它只能對于單列進行連接,對多列進行連接,會報語法錯誤,因為沒有相應的擴展方法

??????????? var result4 = (from s in ctx.T_Student
?????????????????????????? select s.stuName)
????????????????????????? .Concat(from k in ctx.T_Score
????????????????????????????????? select k.T_Cource.courceName );
??????????? //合并所有的學生
??????????? var result5 = ((from s in ctx.T_Student
??????????????????????????? select s.stuNumber)
??????????????????????? .Union
??????????????????????? (from k in ctx.T_Score
???????????????????????? select k.stuNumber)).Distinct();
??????????? //交集
??????????? var result6 = (from s in ctx.T_Student
?????????????????????????? select s.stuNumber).Intersect
????????????????????????? (from k in ctx.T_Score
?????????????????????????????? select k.stuNumber);
??????????? //差集
??????????? var result7 = (from s in ctx.T_Student
?????????????????????????? select s.stuNumber).Intersect
?????????????????????????????? (from k in ctx.T_Score
??????????????????????????????? select k.stuNumber);
??????????? //查詢前三個學生的信息
??????????? var result8 = (from s in ctx.T_Student
????????????????????????? select s).Take(3);
??????????? //查詢三個學生以外的所有學生信息
??????????? var result9 = (from s in ctx.T_Student
?????????????????????????????? select s).Skip(3);
??????????? //當學號為2091723時候,就停止獲取學生信息
??????????? var result10 = (from s in ctx.T_Student
??????????????????????????? select s).TakeWhile(k => k.stuNumber == "2091723");
??????????? //當學號為2091723時候,就停止跳過學生信息,并獲取后邊的所有學生信息
??????????? var result11 = (from s in ctx.T_Student
??????????????????????????? select s).SkipWhile(k => k.stuNumber == "2091723");
??????????? //可以用skip和take來對數據進行分頁,這非常方便

??????????? //查看姓名以黃開頭的學生信息,這時候程序需要引入using System.Data.Linq.SqlClient;命名空間
??????????? var result12 = from s in ctx.T_Student
?????????????????????????? where SqlMethods.Like(s.stuName,"黃%")
?????????????????????????? select s;
??????????? //查詢學號為2X917X2的學生
??????????? var result13 = from s in ctx.T_Student
?????????????????????????? where SqlMethods.Like(s.stuNumber, "2_917_2")
?????????????????????????? select s;
??????????? //比較時間的操作分別有:DateDiffDay、DateDiffHour、DateDiffMillisecond、DateDiffMinute、DateDiffMonth、DateDiffSecond、DateDiffYear ,也是sqlMethods方法,而數據庫中的表并沒有設計時間的字段,所以就不演示了


??????????? //SQL語句進行編輯重新查詢,需要引用命名空間using System.Data.Linq;
??????????? var fn = CompiledQuery.Compile(
??????????????? (DB_StudentDataContext ctx1,string stuName)=>
??????????????? from s in ctx1.T_Student
??????????????? where s.stuName==stuName
??????????????? select s
??????????????? );
??????????? var data1 = fn(ctx,"黃陽");
??????????? var data2 = fn(ctx,"黃波");

Linq無聊練習系列6--Any/All/Contains/Concat/Union/Intersect/Except/take/skip/SqlMethods操作練習


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 峨眉山市| 清镇市| 革吉县| 宜宾市| 新乡市| 济阳县| 凤阳县| 廊坊市| 云龙县| 安吉县| 西畴县| 南昌县| 永福县| 台北市| 平武县| 西乌| 阜平县| 怀化市| 凭祥市| 灵武市| 迁西县| 定兴县| 灵石县| 开化县| 十堰市| 微山县| 双鸭山市| 田东县| 大荔县| 宝鸡市| 开阳县| 浙江省| 旌德县| 白山市| 罗山县| 涿鹿县| 剑阁县| 忻州市| 会昌县| 玉树县| 垣曲县|