C# 将交错数组初始化为零
是否有一种不那么冗长的方法初始化这个锯齿状数组C# 将交错数组初始化为零,c#,arrays,init,jagged-arrays,C#,Arrays,Init,Jagged Arrays,是否有一种不那么冗长的方法初始化这个锯齿状数组 var r = new int[a.Length][]; for (int i=0; i<a.Length; i++) { r[i] = new int[2]; } var r=newint[a.Length][]; 对于(int i=0;i来说,答案是否定的,您不能在初始化时隐式地default锯齿状数组 交错数组实际上只是一个数组(在本例中是另一个数组),因此每个元素都必须由其自身初始化
var r = new int[a.Length][];
for (int i=0; i<a.Length; i++)
{
r[i] = new int[2];
}
var r=newint[a.Length][];
对于(int i=0;i来说,答案是否定的,您不能在初始化时隐式地default
锯齿状数组
交错数组实际上只是一个数组(在本例中是另一个数组),因此每个元素都必须由其自身初始化
我可以建议使用
- 相反,多维数组在初始化时将被默认设置为
- 如果失败,您可以将通用帮助器写入
默认值
并初始化
- 或者一种扩展方法
Linq等价物的详细程度仅略低一些:
int[][] r = Enumerable.Range(1,a.Length)
.Select(i => new int[2])
.ToArray();
强制链接:我的意思是更快地键入而不是更快的cpuf。在我的情况下,多维数组可能非常稀疏,例如我可能有a[0]=int[2]……a[1000]=int[100]
,这意味着int[1000100]
,我假设它分配的内存远远大于int[1000][