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

时间:2020-05-23 22:59:39

标签: c#

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

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

1 个答案:

答案 0 :(得分:1)

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

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
相关问题