我有一个数组,其中包含以下格式的数据结构的字段;
[0] = Record 1 (Name Field)
[1] = Record 1 (ID Field)
[2] = Record 1 (Other Field)
[3] = Record 2 (Name Field)
[4] = Record 2 (ID Field)
[5] = Record 2 (Other Field)
等等
我正在将其处理成一个集合,如下所示;
for (int i = 0; i < components.Length; i = i + 3)
{
results.Add(new MyObj
{
Name = components[i],
Id = components[i + 1],
Other = components[i + 2],
});
}
这很好用,但我想知道是否有一种很好的方法可以使用 LINQ 实现相同的输出?这里没有功能要求,我只是好奇它是否可以完成。
我确实做了一些按索引分组的实验(在ToList()
数组之后);
var groupings = components
.GroupBy(x => components.IndexOf(x) / 3)
.Select(g => g.ToArray())
.Select(a => new
{
Name = a[0],
Id = a[1],
Other = a[2]
});
这行得通,但我认为这对于我正在尝试做的事情来说有点矫枉过正。for
有没有更简单的方法来实现与循环相同的输出?