【问题标题】:how to handle the empty list, List Alternated[0] throws exception while assigning empty value to C2如何处理空列表,List Alternated[0]在为C2分配空值时抛出异常
【发布时间】:2020-06-14 09:54:58
【问题描述】:

Var Alternate 有文件列表

//Split the Files
    var Alternated = Files
                    .Select((name, index) => new { name, index })
                    .GroupBy(item => item.index % 2, item => item.name)
                    .Select(group => group.ToList())
                    .ToArray();

如果变量只有一个值,Alternated[1] 抛出异常如何处理空列表Alternated[1]

//Assigning alternate files to the variable  
var C1 = Alternated[0];
var C2 = Alternated[1];

【问题讨论】:

  • 列表Alternated中的值是什么类型?
  • 您可以使用 ElementAtOrDefault,更多信息请查看Does Index of Array Exist
  • 您使用调试器查看过发生了什么。从这里很难想象你的数据内容
  • 列表中的值类型交替是字符串(文件名列表)
  • 为什么要把数组元素赋值给变量,可以直接在for循环中使用数组元素?否则您需要检查您尝试使用的索引是否小于数组长度?

标签: c#


【解决方案1】:

您可以使用ElementAtOrDefault

var C1 = Alternated.ElementAtOrDefault(0);
var C2 = Alternated.ElementAtOrDefault(1);

【讨论】:

    【解决方案2】:

    试试这个:

    string[] C = new string[Alternated.Length];
    
        for (int i = 0; i < C.Length; i++)
            C[i] = Alternated[i].ToString();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-08-30
      • 1970-01-01
      • 2015-09-19
      • 2017-06-27
      • 2013-07-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多