【发布时间】:2021-11-12 19:12:59
【问题描述】:
我对 LINQ 和一般查询相当陌生。
我的目标是从每个列表中获取值,比较它们,然后将两个列表中的值添加到生成的 IEnumerable 中。这是我当前的工作代码,具有预期的结果,但我想知道是否有办法缩短或简化它
query1a 执行查询并选择所有偶数 query1b 执行相同的查询,只是它选择所有奇数 query1 以升序从 query1a 和 query1b 的联合中获取所有值
IEnumerable<int> query1a =
(from e in evens
from o in odds
where e > o * 2
select e).Distinct();
IEnumerable<int> query1b =
(from e in evens
from o in odds
where e > o * 2
select o).Distinct();
IEnumerable<int> query1 = from n in query1a.Union(query1b) orderby n ascending select n;
foreach (int item in query1)
{
Console.WriteLine(item);
}
【问题讨论】:
-
条件似乎不同的地方。在第二个查询中,您使用了大于或等于而不是大于。是不是打错字了?
-
我只是想了解您的意图是否在两种情况下都执行完全相同的查询,只是更改您选择的内容。另一个问题,您是否正在对内存中的对象执行查询?换句话说,这是对象的 linq 吗?
-
@EnricoMassone 是的,我错了。