如何Foreach()列表列表?

时间:2014-12-05 12:35:37

标签: c# list foreach

如何预先获取此列表以获取json文件中两个形状的坐标(X,Y):

public List<List<List<List<double>>>> coordinates { get; set; }

3 个答案:

答案 0 :(得分:2)

您可以使用以下

foreach(var i in coordinates.SelectMany(x => x).SelectMany(x => x).SelectMany(x => x))
{

}

或者你只是打电话,但我不认为列表清单等是个好主意, 你想用这个解决什么问题?

答案 1 :(得分:1)

旧学校的方式是这样的:

foreach (List<List<List<double>>> listA in coordinates)
    foreach (List<List<double>> listB in listA)
        foreach (List<double> listC in listB)
            foreach (double value in listC)
            {
                // Do something with double value
            }

答案 2 :(得分:0)

其他答案可以解决您的问题,但如果您只需要内部坐标列表,我建议您在序列化时间(预先准备文档)或在反序列化时使用JSON.NET或{{1进入一个更易于管理的结构。

这将阻止使用x foreach循环或SelectMany语句的令人讨厌的代码,这些语句也在内部循环,因为那种代码是算法地狱。