第三十五講 LINQ 語法(二)

2021-06-21 15:37:32 字數 3260 閱讀 6528

不廢話看例項:

using system;

using system.collections.generic;

using system.linq;

using system.text;

namespace con35

; liststus = new list() ,"1001"),

new student(2,"王小三",new list(),"1002"),

new student(3,"李小三",new list(),"1003"),

new student(4,"趙小三",new list(),"1004"),

new student(5,"劉小三",new list(),"1005"),

new student(6,"田小三",new list(),"1006"),

new student(7,"張中三",new list(),"1007"),

new student(8,"王中三",new list(),"1008"),

new student(9,"張小四",new list(),"1008"),

new student(20,"張小五",new list(),"1005"),

new student(10,"張小六",new list(),"1004"),

new student(11,"張小七",new list(),"1007"),

new student(12,"張小八",new list(),"1002")

};console.writeline("\n*****===join...on...equals.***************");

var stucollections = from bj in bjs

where bj.bjnum != "1005"//這裡加個排除班級編號為1005的班級

join st in stus on bj.bjnum equals st.bjnum

select new ;

foreach (var v in stucollections)

, 班級名()),班級編號是()", v.na, v.bn, v.bu);

}console.writeline("\n*****===join...on...equals...into***************");

var stucol = from bj in bjs

where bj.bjname != "初中三年級"

join st in stus on bj.bjnum equals st.bjnum into col

select new ;

foreach (var v in stucol)

),班級名字()*****=\n", v.id, v.bn);

//迭代學生集合

foreach (student s in v.col)

),學生姓名(),學生所在班級()", s.stuid, s.stuname, s.bjnum);}}

console.writeline("\n====外連線相關,必須要考慮到空值,未加預設值*****==");

//這裡我複製了join...on... into中的**進來,稍加改動

var stucols = from bj in bjs

where bj.bjname != "初中三年級"

join st in stus on bj.bjnum equals st.bjnum into col//下面加了段空值判斷語句

from item in col.defaultifempty()//這裡沒有對其指定預設值

select new ;

foreach (var v in stucols)

),班級名字()*****=\n", v.id, v.bn);

"學生編號(),學生姓名(),學生所在班級()", v.test.stuid, v.test.stuname, v.test.bjnum);//如果item為null那執行時就會報錯,我還自以為不會,實踐出真知,真理也!

console.writeline("學生編號(),學生姓名(),學生所在班級()", v.test != null ? v.test.stuid : 0, v.test != null ? v.test.stuname : "無", v.test != null ? v.test.bjnum : "空空空");//這裡為每個物件屬性加個條件判斷

}console.writeline("\n====外連線相關,必須要考慮到空值,追加預設值*****==");

//這裡我複製了join...on... into中的**進來,稍加改動

var stucol2 = from bj in bjs

where bj.bjname != "初中三年級"

join st in stus on bj.bjnum equals st.bjnum into col//下面加了段空值判斷語句

from item in col.defaultifempty(

new student(0,"萬能的神",new list(),"無")

)//指定預設值

select new ;

foreach (var v in stucol2)

號,),學生資訊(號學生 ,所屬班級編號是())"

,v.id,v.bn,v.test.stuid,v.test.stuname,v.test.bjnum);}

console.writeline("\n*****=聚合函式*****==");

//老師很細心的又讓我複習了一下匿名類

var stu = new

};//不知道有沒有人不明白,下面為什麼我這麼肯定要用double資料型別?

//這裡面有個關係,上面stu這個物件型別決定了val的型別

//接下來,slect的型別決定了maxvalue的資料型別

//而maxvalue的型別就決定了foreach或著輸出的資料型別

double maxvalue = (from val in stu.score

select val).max();

console.writeline("最大值是", maxvalue.tostring());

console.readkey();}}

public class banji

}public class student

}}

後的例項待補充,這是今天在工作業務練習的,後面的以視窗程式來做。   

第三十五講專案四 貪財的富翁

1.任務和 all cights reserved 檔名稱 a.c 完成日期 2017年4月17日 版本號 6.0 問題描述 乙個百萬富翁遇到乙個陌生人,陌生人找他談乙個換錢的計畫,該計畫如下 我每天給你十萬元,而你第一天只需給我一分 錢,第二天我仍給你十萬元,你給我兩分錢,第三天我仍給你十萬元,你...

日本語 第三十五課

第三十五課 明日雨 降 大會 中止 日本 帰 中國語 勉強 続 今年 夏休 日 會議室 李 大學 卒業 外國 働 馬 元気 何 聞 何 言 李 資料 少 待 大人 乗 子供 乗 語法 小句1 小句2 用於表示假定條件 小句1 為過去簡體小句 動詞和形容詞 將 形容動詞和名詞 明日雨 降 大會 中止 ...

LeetCode第三十五題 Python實現

title leetcode no.35 categories tags 給定乙個排序陣列和乙個目標值,在陣列中找到目標值,並返回其索引。如果目標值不存在於陣列中,返回它將會被按順序插入的位置。你可以假設陣列中無重複元素。示例 1 輸入 1,3,5,6 5 輸出 2 示例 2 輸入 1,3,5,6 ...