我正尝试在 LINQ(LINQ 到对象)查询中使用命名元组数组,如下所示:
(int from, int to)[] inputRanges = { (1,2), (3,4) };
var result = from range in inputRanges
select Enumerable.Range(range.from, range.to - range.from + 1);
return result.SelectMany(x => x);
但是,我收到一个编译器错误,告诉我 range
没有成员 from
而是需要一个逗号 ,
而不是 .来自
.
我做错了什么?命名元组和 LINQ-to-objects 不能组合吗?
最佳答案
问题在于 from
是 linq 用于迭代集合项的关键字(from item in collection ...
)。
要解决它,请在 linq 中使用 @from
:
var result = from range in inputRanges
select Enumerable.Range(range.@from, range.to - range.@from + 1);
有关 @
的更多信息,请参阅:C# prefixing parameter names with @ . IMO 在这种情况下使用属性名称 from
是可以的,但我确实认为通常这将是一种不好的做法。
关于c# - 在 LINQ 中使用命名元组数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53325882/