2014年4月6日 星期日

[Linq] 基礎 part1

就...該還的基礎~
  1. class Program
  2.     {
  3.         static void Main(string[] args)
  4.         {
  5.             //測試資料
  6.             string[] names = {"andy", "Peter", "candy", "tom"};
  7.  
  8.             //linq query expression syntax
  9.             IEnumerable<string> filternames = names.Where(n => n.Length >= 4);
  10.             foreach (string name in filternames)
  11.             {
  12.                 Console.WriteLine(name);
  13.             }
  14.  
  15.             //chaining Query Operators
  16.             //有左到右的操作順序,篩選、排序、轉換
  17.             IEnumerable<string> query = names
  18.                 .Where(n => n.Contains("a"))
  19.                 .OrderBy(n => n.Length)
  20.                 .Select(n => n.ToUpper());
  21.  
  22.             foreach (string name in query)
  23.             {
  24.                 Console.WriteLine(name);
  25.             }
  26.  
  27.             //Fluent syntax
  28.             IEnumerable<string> filternames2 = from n in names
  29.                                                 where n.Contains("a")
  30.                                                 select n;
  31.             foreach (string name in filternames2)
  32.             {
  33.                 Console.WriteLine(name);
  34.             }
  35.  
  36.             //nature ordering
  37.             int[] numbers = {10, 9, 8, 7, 6};
  38.             IEnumerable<int> firstthree = numbers.Take(3);  // 10 9 8
  39.             IEnumerable<int> lasttwo = numbers.Skip(3);     // 7 6
  40.             IEnumerable<int> reversed = numbers.Reverse();  // 6 7 8 9 10
  41.  
  42.             //結合陣列
  43.             int[] seq1 = {1, 2, 3};
  44.             int[] seq2 = {3, 4, 5};
  45.             IEnumerable<int> concat = seq1.Concat(seq2);    // 1 2 3 3 4 5
  46.             IEnumerable<int> union = seq1.Union(seq2);      // 1 2 3 4 5
  47.             foreach (int i in concat)
  48.             {
  49.                 Console.Write(i.ToString() + "|");
  50.             }
  51.  
  52.         }
  53.     }

沒有留言:

張貼留言