有没有一种方法可以在同一枚枚举上运行的方法中引用源枚举?引用可枚举的方法中的枚举源?
例如,该代码重复1-6原始枚举范围:
IEnumerable<int> result = Enumerable.Range(1, 6)
.Where(a => Enumerable.Range(1, 6).Count() % 2 == 0);
我想知道是否存在与重复原始枚举以产生它的清洁器的方式,如:
IEnumerable<int> result = Enumerable.Range(1, 6)
.Where(a => [source reference].Count() % 2 == 0);
是的,我知道以下是解决方案...但有没有办法直接引用内存中的枚举,如上所示?
IEnumerable<int> source = Enumerable.Range(1, 6);
IEnumerable<int> result = source.Where(a => source.Count() % 2 == 0);
我不是在寻找上述代码行的特定答案;他们只是一个展示我想知道的例子。
我不认为C#有一个解决方案,而不是你的最后一个例子。我认为这最后一个例子是很容易理解的。 – zmbq
当您没有直接引用它时,您如何期望直接引用枚举? – asawyer
为什么在'Where'查询中使用条件会给每个项目提供相同的结果? – Rawling