我们可以通过linq更新外部变量,也就是说,我们可以通过linq更新linq范围内没有使用的变量吗?
例如,这就是我尝试过的:
var s = list_UIModes_And_Related_Actions_Details
.Select(x => x.ActionIdList)
.Select(y => modeAndActionRelationTable[Counter++] = Convert.ToByte(y));
但是这行不会更新modeAndActionRelationTable数组。
答案 0 :(得分:4)
是的,您可以更改LINQ语句中的任何变量,但您应该避免这样做。
在您的示例中,如果您遍历可枚举的s
两次,Counter
将超出范围。如果它只迭代一半,并重新开始,Counter
也将关闭。这不可靠。
您的代码可能会在您第一次完全实现可枚举时运行。添加ToList()
或ToArray()
会为您做到这一点。