下午我在開發公司的產品系統,遇到一些 LINQ Lamba 動態查詢的需求(這個議題,我擇天會寫一篇專文介紹),所以先介紹一下LINQ Query,作為.NET程式設計師(不論是寫C#或VB)都應該知道LINQ查詢語言,而它也是我開發.NET數年最愛的技術之一,因為它的各種內部演算法都已由微軟實作好,通常我都會用 Lambd Expression 或 LINQ Query,如以下語法:我們先建立 水果清單 …
有 香蕉、蘋果、芒果、香瓜、太陽花(今年台灣的名產)
1: //建立水果清單
2: List<Fruit> Fruits = new List<Fruit>()
3: { new Fruit { Id = 1, Name = "香蕉", Desc = "香蕉" }
4: , new Fruit { Id = 2, Name = "蘋果", Desc = "蘋果" }
5: , new Fruit { Id = 3, Name = "芒果", Desc = "芒果" }
6: , new Fruit { Id = 4, Name = "香瓜", Desc = "香瓜"}
7: , new Fruit { Id = 5, Name = "太陽花", Desc = "太陽花,是香蕉的一種^^"}
8: };
如果我想找出水果名有 “果”字的,我會用以下兩種方式
第一種 Lamba Expression
1: //第一種 Lamba Expression
2: var fruitResult1 = Fruits.Where(t => t.Name.Contains("果"));
第二種,LINQ Query (類似 SQL Style)
1: //第二種,LINQ Query (類似 SQL Style)
2: var fruitResult2 = (from f in Fruits
3: where f.Name.Contains("果")
4: select f);
我們把結果列印至營幕
1: //找出水果名有 “果”字的,我會用以下兩種方式
2: //第一種 Lamba Expression
3: var fruitResult1 = Fruits.Where(t => t.Name.Contains("果"));
4:
5: //Print search result to screen
6: Console.WriteLine("第一種 Lamba Expression");
7: foreach (Fruit fruit in fruitResult1)
8: Console.WriteLine(fruit.Name);
9:
10: //第二種,LINQ Query (類似 SQL Style)
11: var fruitResult2 = (from f in Fruits
12: where f.Name.Contains("果")
13: select f);
14:
15: Console.WriteLine();
16:
17: //Print search result to screen
18: Console.WriteLine("第二種,LINQ Query (類似 SQL Style)");
19: foreach (Fruit fruit in fruitResult2)
20: Console.WriteLine(fruit.Name);
21:
22: //Wait press any key
23: Console.ReadLine();
這樣很快的得到我們要的正確結果。
那麼如果有找出太陽花水果呢?
…..各位知道如何寫這段查詢語法吧?
1: var fruitResult3 = Fruits.Where(t => t.Desc.Contains("太陽花"));
2: Console.WriteLine(" 查詢結果。。。今天程式寫累了。。");
3: foreach (Fruit fruit in fruitResult3)
4: Console.WriteLine(fruit.Name);
沒有留言:
張貼留言
如您對本文有任何建議或意見,歡迎您留下您寶貴的意見!