假设我有这个多维数组:
现在,我想将每个子数组转换为类型为
float[][,] vertices = {
new float[,]{ {0f, 1.28f}, {1.28f, 2.56f}, {3.84f, 2.56f}, {5.12f, 1.28f}, {3.84f, 0f}, {1.28f, 0f}, {0f, 1.28f} },
new float[,]{ {0f, 3.83f}, {1.27f, 5.12f}, {3.87f, 5.12f}, {5.12f, 3.83f}, {5.12f, 1.26f}, {3.87f, 0f}, {1.27f, 0f}, {0f, 1.26f}, {0f, 3.83f} }
};
现在,我想将每个子数组转换为类型为
Vector2[]
的数组,其中Vector2
是一个公共类,它只包含x
和y
属性。public class Vector2 {
public float x;
public float y;
public Vector2(float x, float y) { this.x = x; this.y = y }
}
我想从上述vertices
数组变量中的子数组Array[2]元素构建Vector2元素。
我会这样做:
Array.ConvertAll(vertices[0],
new Converter<float[], Vector2>(verticesSequence => { return new Vector2(verticesSequence[0], verticesSequence[1]); }));
然而,我收到了以下错误消息:
错误 15:最佳重载方法匹配“System.Array.ConvertAll(float[][], System.Converter)”具有一些无效参数。
Array.ConvertAll
需要一个交错数组,而你传入了一个多维数组。 - Sayse