C# 如何把int[][]转换成int[*,*]
// dt.Rows[i]["pos"] 如下示例
//{0,0}
//{1,0}
//{2,0}
//{3,0}
//{4,0}
//{5,0}
List<int[]> lstInt = new List<int[]>();
for (int i = 0; i < dt.Rows.Count; i++)
{
int[] intTemp = Array.ConvertAll<string, int>(dt.Rows[i]["pos"].ToString().Split(','), s => int.Parse(s));
lstInt.Add(intTemp);
}
//int[][] blk_pos = lstInt.ToArray();
int[,] blk_pos = ToMultidimensionalArray(lstInt);
//转换方法(可以把int数组类型换成double数组类型等,都是支持的)
static int[,] ToMultidimensionalArray(List<int[]> arrayList)
{
int[,] mdArray = new int[arrayList.Count, arrayList[0].Length];
int rowIndex = 0;
arrayList.ForEach(x =>
{
Buffer.BlockCopy(
x, // src
0, // srcOffset
mdArray, // dst
rowIndex++ * mdArray.GetLength(1) * sizeof(int), // dstOffset
x.Length * sizeof(int)); // count
});
return mdArray;
}