LinQ
Distinct 和 DistinctBy
以下示例演示字符串序列上 Enumerable.Distinct 方法的行为。 返回的序列包含输入序列的唯一元素。
string[] planets = { "Mercury", "Venus", "Venus", "Earth", "Mars", "Earth" }; IEnumerable<string> query = from planet in planets.Distinct() select planet; foreach (var str in query) { Console.WriteLine(str); } /* This code produces the following output: * * Mercury * Venus * Earth * Mars */
Except 和 ExceptBy
以下示例演示 Enumerable.Except 的行为。 返回的序列只包含位于第一个输入序列但不位于第二个输入序列的 元素。
string[] planets1 = { "Mercury", "Venus", "Earth", "Jupiter" }; string[] planets2 = { "Mercury", "Earth", "Mars", "Jupiter" }; IEnumerable<string> query = from planet in planets1.Except(planets2) select planet; foreach (var str in query) { Console.WriteLine(str); } /* This code produces the following output: * * Venus */
Intersect 和 IntersectBy
以下示例演示 Enumerable.Intersect 的行为。 返回的序列包含两个输入序列共有的元素。
string[] planets1 = { "Mercury", "Venus", "Earth", "Jupiter" }; string[] planets2 = { "Mercury", "Earth", "Mars", "Jupiter" }; IEnumerable<string> query = from planet in planets1.Intersect(planets2) select planet; foreach (var str in query) { Console.WriteLine(str); } /* This code produces the following output: * * Mercury * Earth * Jupiter */
Union 和 UnionBy
以下示例演示对两个字符串序列执行的联合操作。 返回的序列包含两个输入序列的唯一元素。
string[] planets1 = { "Mercury", "Venus", "Earth", "Jupiter" }; string[] planets2 = { "Mercury", "Earth", "Mars", "Jupiter" }; IEnumerable<string> query = from planet in planets1.Union(planets2) select planet; foreach (var str in query) { Console.WriteLine(str); } /* This code produces the following output: * * Mercury * Venus * Earth * Jupiter * Mars */