我有一个很长的(10000 多个条目)结构列表,每个结构都包含一个 int[16]。我想转置数据以创建 16 个 int[] 数组,这些数组长 10000 多个条目。本质上,我想转置数据。有没有比遍历列表和创建新条目更快的方法?
问问题
147 次
2 回答
0
所以你只想要一个 int[16] 的数组?
也许 linq 可以做到这一点
var newArray = fooArray.Select(foo => foo.IntVal).ToArray();
于 2012-11-24T08:31:55.253 回答
0
这样的事情应该做你:
struct Widget
{
public int[] Values = new int[16];
}
public int[][] TransposeWidgets( List<Widget> widgets )
{
int cols;
int[][] result = new int[][];
for ( int row = 0 ; i < 16 ; ++row )
{
results[row] = new int[ widgets.Count ];
for ( int col = 0 ; col < widgets.Count ; ++col )
{
result[row][col] = widgets[col].Values[row];
}
}
}
尽管只对大列表进行一次迭代可能会更快。如果它真的很大,迭代该列表可能会导致分页,这会减慢速度。
于 2020-08-14T22:05:01.477 回答