有没有办法将1-D List <model>分解为2D数组?</model>

时间:2014-01-02 21:15:28

标签: c# wpf

由于C#非常灵活(部分原因在于其解释性质),我想知道以下功能是否随时可用。否则我会自己动手。

我有一个List<MyModel>,使用嵌套循环遍历会更方便/更方便:

for (col = 1 to lastCol)
    for (row = 1 to lastRow)
        scrutinize(row, col);

补充:也许我应该在列中使用foreach

1 个答案:

答案 0 :(得分:2)

回答标题问题,您可以使用LINQ将一维列表分解为2D数组。对于简单的整数列表:

List<int> list = new List<int>() { 1, 2, 3, 4, 5, 6, 7, 8 };
var array =
list.Select((v, i) => new { Value = v, Index = i})
    .GroupBy(x => x.Index / 4, x => x.Value, (key,values) => values.ToArray())
    .ToArray();

然后您可以使用二维list来访问array元素。