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.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.Contains("a"))
  19.                 .OrderBy(=> n.Length)
  20.                 .Select(=> 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 = {109876};
  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 = {123};
  44.             int[] seq2 = {345};
  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.     }

沒有留言:

張貼留言