首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >未定义的数组初始化和绑定数据

未定义的数组初始化和绑定数据
EN

Stack Overflow用户
提问于 2014-05-23 20:53:13
回答 1查看 34关注 0票数 0

把我的100行数组减少到2..

很想知道是否有一种不同的方法来实例化数组,并允许下面的代码

代码语言:javascript
复制
public [,]ary = new double[,]{
     { 11.4, 11.4, 11.4, 11.4, 11.4, 11.3, 10.9, 17.3, 10.6 },
     { 14.6, 14.6, 14.6, 14.6, 14.6, 14.6, 14.6}
}

目前,我已经修正了我的问题,将0添加到数组2中的第8和第9位置。

或者如果我一定要把它打出来

代码语言:javascript
复制
ary[0,1] = [...]
.
.
//Skipping 8th and 9th position in array 2
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-05-23 21:00:47

一种选择是编写一种方法,将锯齿数组转换为二维数组,初始化锯齿数组,然后将其转换。这将导致任何小于max数组的数组被填充默认值,这似乎是您想要的。

代码语言:javascript
复制
public static T[,] MakeSquare<T>(this T[][] jagged)
{
    int maxWidth = jagged.Max(array => array.Length);
    T[,] output = new T[jagged.Length, maxWidth];
    for (int i = 0; i < output.GetLength(0); i++)
        for (int j = 0; j < output.GetLength(1); j++)
        {
            output[i, j] = jagged[i][j];
        }
    return output;
}

现在你可以写:

代码语言:javascript
复制
double[,] array = new double[][]
{
    new[]{ 11.4, 11.4, 11.4, 11.4, 11.4, 11.3, 10.9, 17.3, 10.6 },
    new[]{ 14.6, 14.6, 14.6, 14.6, 14.6, 14.6, 14.6}
}.MakeSquare();

现在,这种方法确实意味着在运行时增加一些成本,以换取程序员方面的方便,但是如果这些数组是您定义为文本的数组,那么它们实际上不应该太大,以至于将它们的数据复制到一个新的数组上是非常昂贵的。如果有那么多内容,那么首先不应该将其定义为文字数据,而是将其放入数据库或其他什么地方。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23838171

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档