Linq101-Set

  1 using System;
  2 using System.Collections.Generic;
  3 using System.Linq;
  4 
  5 namespace Linq101
  6 {
  7     class Set
  8     {
  9         /// <summary>
 10         /// This sample uses Distinct to remove duplicate elements in a sequence of factors of 300.
 11         /// </summary>
 12         public void Linq46()
 13         {
 14             int[] factorsOf300 = { 2, 2, 3, 5, 5 };
 15 
 16             var uniqueFactors = factorsOf300.Distinct();
 17 
 18             Console.WriteLine("300的因数:");
 19             foreach (var factor in uniqueFactors)
 20             {
 21                 Console.WriteLine(factor);
 22             }
 23         }
 24 
 25         /// <summary>
 26         /// This sample uses Distinct to find the unique Category names.
 27         /// </summary>
 28         public void Linq47()
 29         {
 30             List<Data.Product> products = Data.GetProductList();
 31 
 32             var categoryNames = (from p in products
 33                                  select p.Category).Distinct();
 34 
 35             Console.WriteLine("种类名称:");
 36             ObjectDumper.Write(categoryNames);
 37         }
 38 
 39         /// <summary>
 40         /// This sample uses Union to create one sequence that contains the unique values from both arrays.
 41         /// </summary>
 42         public void Linq48()
 43         {
 44             int[] numbersA = { 0, 2, 4, 5, 6, 8, 9 };
 45             int[] numbersB = { 1, 3, 5, 7, 8 };
 46 
 47             var uniqueNumbers = numbersA.Union(numbersB);
 48 
 49             Console.WriteLine("Unique numbers from both arrays:");
 50             ObjectDumper.Write(uniqueNumbers);
 51         }
 52 
 53         /// <summary>
 54         /// This sample uses Union to create one sequence that contains the unique first letter from both product and customer names.
 55         /// </summary>
 56         public void Linq49()
 57         {
 58             List<Data.Product> products = Data.GetProductList();
 59             List<Data.Customer> customers = Data.GetCustomerList();
 60 
 61             var productFirstChar = from p in products select p.ProductName[0];
 62             var customerFirstChar = from c in customers select c.CompanyName[0];
 63 
 64             var uniqueFirstChar = productFirstChar.Union(customerFirstChar);
 65 
 66             Console.WriteLine("Unique First Char:");
 67             ObjectDumper.Write(uniqueFirstChar);
 68         }
 69 
 70         /// <summary>
 71         /// This sample uses Intersect to create one sequence that contains the common values shared by both arrays.
 72         /// </summary>
 73         public void Linq50()
 74         {
 75             int[] numbersA = { 0, 2, 4, 5, 6, 8, 9 };
 76             int[] numbersB = { 1, 3, 5, 7, 8 };
 77 
 78             var commonNumbers = numbersA.Intersect(numbersB);
 79 
 80             Console.WriteLine("共有的数字:");
 81             ObjectDumper.Write(commonNumbers);
 82         }
 83 
 84         /// <summary>
 85         /// This sample uses Intersect to create one sequence that contains the common first letter from both product and customer names.
 86         /// </summary>
 87         public void Linq51()
 88         {
 89             List<Data.Product> products = Data.GetProductList();
 90             List<Data.Customer> customers = Data.GetCustomerList();
 91 
 92             var productFirstChar = from p in products select p.ProductName[0];
 93             var customerFirstChar = from c in customers select c.CompanyName[0];
 94 
 95             var commonFirstChar = productFirstChar.Intersect(customerFirstChar);
 96 
 97             Console.WriteLine("Common First Char");
 98             ObjectDumper.Write(commonFirstChar);
 99         }
100 
101         /// <summary>
102         /// This sample uses Except to create a sequence that contains the values from numbersAthat are not also in numbersB.
103         /// </summary>
104         public void Linq52()
105         {
106             int[] numbersA = { 0, 2, 4, 5, 6, 8, 9 };
107             int[] numbersB = { 1, 3, 5, 7, 8 };
108 
109             var aOnlyNumbers = numbersA.Except(numbersB);
110 
111             Console.WriteLine("Numbers in arrayA but no ArrayB");
112             ObjectDumper.Write(aOnlyNumbers);
113         }
114 
115         /// <summary>
116         /// This sample uses Except to create one sequence that contains the first letters of product names that are not also first letters of customer names.
117         /// </summary>
118         public void Linq53()
119         {
120             List<Data.Product> products = Data.GetProductList();
121             List<Data.Customer> customers = Data.GetCustomerList();
122 
123             var productFirstChar = from p in products select p.ProductName[0];
124             var customerFirstChar = from c in customers select c.CompanyName[0];
125 
126             var productOnlyFirstChar = productFirstChar.Except(customerFirstChar);
127 
128             Console.WriteLine("First char only in productFirstChar");
129             ObjectDumper.Write(productOnlyFirstChar);
130         }
131     }
132 }

 

posted @ 2015-01-28 16:01  David Huang  阅读(188)  评论(0编辑  收藏  举报