可以在LINQ中进行联合吗?

Sco*_*ies 5 c# linq

根据我对LINQ中where子句的理解,它根据每个元素的所有可能组合组合来自两个或多个集合的元素,然后应用标准.例如:

public static void Main(string[] args)
{
    var setA = new[] {3, 4, 5};
    var setB = new[] {6, 7, 8};

    var result = from a in setA
                 from b in setB
                 let sum = a + b
                 where sum == 10            // Where, criteria sum == 10.
                 select new {a, b, sum};

    foreach (var element in result)
        Console.WriteLine("({0},{1}) == {2}", element.a, element.b, element.sum);

    Console.ReadLine();
}
Run Code Online (Sandbox Code Playgroud)

这会在应用where条件之前产生以下结果.

3,6 = 9    4,6 = 10    5,6 = 11
3,7 = 10   4,7 = 11    5,7 = 12
3,8 = 11   4,8 = 12    5,8 = 13
Run Code Online (Sandbox Code Playgroud)

符合标准的结果是3,7和4,6.这会产生结果:

(3,7) == 10
(4,6) == 10
Run Code Online (Sandbox Code Playgroud)

但是,从我在小学集理论中记得的,有没有办法提供两组的联合(伪代码):

{3,4,5}联合{6,7,8} = {3,4,5,6,7,8}

谢谢,

斯科特

Chr*_*man 10

var Result = setA.Union(setB)
Run Code Online (Sandbox Code Playgroud)

有关所有运算符的完整列表,请查看Enumerable.