【问题标题】:Can we update external variable through LINQ?我们可以通过 LINQ 更新外部变量吗?
【发布时间】:2018-02-19 18:30:21
【问题描述】:

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

例如,这是我尝试过的:

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

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

【问题讨论】:

  • 你尝试的时候发生了什么?
  • 你试过什么?这样做的结果是什么?您的研究表明了什么?
  • 此问题将标记为已关闭。如果您想添加更多内容以进行澄清,请尽快
  • 如果在最后一行末尾添加.ToList()会怎样?
  • modeAndActionRelationTable[Counter++] 是雷区,小心会导致意外错误

标签: c# .net linq


【解决方案1】:

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

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

当您第一次完全实现可枚举时,您的代码可能会工作。添加ToList()ToArray() 将为您完成。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-25
    • 2011-09-18
    • 1970-01-01
    相关资源
    最近更新 更多