【问题标题】:Linq select - handle situation where out of bounds exception would be thrownLinq select - 处理将抛出越界异常的情况
【发布时间】:2019-04-09 14:23:55
【问题描述】:

有谁知道我可以写这个表达式来返回一个空字符串,其中数组的长度小于ii

for (var ii = 0; ii < maxColumnLength; ii++)
{
    var rowDataArray = columnData.Select(x => x[ii]);
}

我知道我可以把它写成一个 for 循环,但我正在尝试用这种风格来写

【问题讨论】:

    标签: c# arrays linq


    【解决方案1】:

    通常您使用ternary operator 检查条件并选择适当的项目

    var rowDataArray = columnData.Select(x => ii >= x.Length ? "" : x[ii]);
    

    在这种情况下,如果满足条件,则取第一个元素,如果不满足,则取第二个元素。

    来自文档:

    条件运算符的语法如下:
    condition ? consequence : alternative

    【讨论】:

      【解决方案2】:
              for (var ii = 0; ii < maxColumnLength; ii++)
              {
                  var rowDataArray = columnData.Select(x => ii < x.Length ? x[ii] : string.Empty);
              }
      

      【讨论】:

      • 虽然此命令可能会回答问题,但提供有关此代码为何和/或如何回答问题的额外上下文可提高其长期价值。 How to Answer
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-09-22
      • 1970-01-01
      相关资源
      最近更新 更多