根据我对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.
| 归档时间: |
|
| 查看次数: |
1363 次 |
| 最近记录: |