我们可以通过LINQ更新外部变量吗?

时间:2018-02-19 10:13:04

标签: c# .net linq

我们可以通过linq更新外部变量,也就是说,我们可以通过linq更新linq范围内没有使用的变量吗?

例如,这就是我尝试过的:

var s = list_UIModes_And_Related_Actions_Details
  .Select(x => x.ActionIdList)
  .Select(y => modeAndActionRelationTable[Counter++] = Convert.ToByte(y));

但是这行不会更新modeAndActionRelationTable数组。

1 个答案:

答案 0 :(得分:4)

是的,您可以更改LINQ语句中的任何变量,但您应该避免这样做。

在您的示例中,如果您遍历可枚举的s两次,Counter将超出范围。如果它只迭代一半,并重新开始,Counter也将关闭。这不可靠。

您的代码可能会在您第一次完全实现可枚举时运行。添加ToList()ToArray()会为您做到这一点。