foreach语句不会将值添加到列表中

我不知道为什么foreach语句不向列表中添加值,帮助

foreach (var item in blocklines)
            {
                if (item.Contains(','))
                {
                    List<double> xyz = item.Split(',').Select(double.Parse).ToList();
                }
            }
评论
  • 龙
    回复

    循环的每次迭代都将创建一个新列表,不执行任何操作,并使它超出范围。相反,如果您想要一个列表,该列表在循环的每次迭代中都会被修改,然后在循环后可以被观察到,则首先仅创建一个列表,然后在循环中对其进行修改:

    List<double> xyz = new List<double>();
    foreach (var item in blocklines)
    {
        if (item.Contains(','))
        {
            xyz.AddRange(item.Split(',').Select(double.Parse).ToList());
        }
    }
    // xyz is now avaiable here