[C#] Linq Join & Lambda Join

摘要:[C#]Linq Join & Lambda Join

最近剛接觸Linq跟Lambda語法上還不太熟悉在此紀錄一下。

 

在開始之前先介紹一個軟體LINQPad用它來練習寫Linq真的很方便,不用特別開一個專案來測試,可以使用LinqPad直接執行看結果,以下的紀錄可直接使用LinqPad執行(資料來源的部分大家就自己隨便弄一個吧,我是直接用MSSQL做一個來用)。

-------------------------------分隔線----------------------------------------

一開始我準備兩個資料表

1. T_Classes (班別資料表)

2.T_Students(學生資料表)

欄位資訊如下:

  

資料內容:

1.T_Classes

2.T_Students

 

 

 

1. Linq Join Example:


	var result = from  c in T_Classes join 
	s in T_Students on c.ClassID equals s.ClassID
	where c.ClassName == "一年級"
	orderby c.ClassID descending
	select new {c.ClassName,s.StudentName};
	result.Dump();

Result:

Linq就像大家說的很像T-SQL的倒裝句。

 

2.Lambda Join Example:


	var Lambdajoin = T_Classes.Join(T_Students, //第一個參數為 要加入的資料來源
	c => c.ClassID,//主表要join的值
	s => s.ClassID,//次表要join的值
	(c,s) => new  // (c,s)代表將資料集合起來
	{
		ClassName = c.ClassName,
		Name = s.StudentName,
		ID = c.ClassID
	}).OrderBy(cs => cs.ID).Where(cs => cs.ClassName =="一年級");//排序及查詢條件
	Lambdajoin.Dump();

Result:

 

Lambda的話語法就比較特別一點還真的需要一些時間適應一下。

 

以上是初步對Linq Join & Lambda Join心得的筆記。