将数组初始化为值

时间:2012-10-12 14:53:33

标签: c#

  

可能重复:
  How to populate/instantiate a C# array with a single value?

给出双数组

   double[] constraintValue = new double[UnUsedServices.Count];

我想用-1初始化所有条目,是否有一个简单的语法来执行此操作?

9 个答案:

答案 0 :(得分:5)

double[] constraintValue = Enumerable.Repeat<double>(-1d,UnUsedServices.Count).ToArray();

答案 1 :(得分:4)

for(int i = 0; i < constraintValue.Length; i++)
    constraintValue[i] = -1;

答案 2 :(得分:2)

 double[] constraintValue = Enumerable.Repeat(-1D, UnUsedServices.Count).ToArray();

答案 3 :(得分:2)

您问题的确切答案是:

for(var i =0; i < constraintValue.Length; i ++)
{
    constraintValue[i] = -1;
} 

但是,如果您想要“取消设置”值,为什么不使用Nullable<double>

double?[] constraintValue = new double?[UnUsedServices.Count];

constraintValue[10] = 42D;
constraintValue[20] = 0D;

var x1 = contraintValue[10].HasValue; // true
var x1val = contraintValue[10].Value; // 42D

var x2 = contraintValue[20].HasValue; // true
var x2val = contraintValue[20].Value; // 0D

var x3 = contraintValue[10].HasValue; // false
//var x3val = contraintValue[10].Value; // exception

答案 4 :(得分:1)

你可以试试

for(int i =0; i < constraintValue.Length; i ++)
{
constraintValue[i] = -1;
} 

答案 5 :(得分:0)

不知道你是否会称之为“简单”:

double[] constraintValue = new double[]{ -1, -1, 
                                         ... (UnUsedServices.Count times)};

当然,执行此操作的标准方法是在每个数组项上循环以初始化它:

for(int i = 0; i < constraintValue.Length; i++)
{
    constraintValue[i] = -1;
}

答案 6 :(得分:0)

for (int i = 0; i < constraintValue.Length; i++)
    constraintValue[i] = -1;

答案 7 :(得分:0)

    int[] initilize_array = newint[10];

    for (int i = 0; i <initilize_array.Length; i++)

    {

    initilize_array[i] = -1;

    }

这是最简单的方式

答案 8 :(得分:0)

如果您需要更快的性能,那么Enumerable.Repeat使用TPL并行执行:

double[] constraintValue = new double[UnUsedServices.Count];
Parallel.For(0, UnUsedServices.Count, index => constraintValue[index] = -1);