【问题标题】:How to replace all items in an array of doubles with the same value [duplicate]如何用相同的值替换双精度数组中的所有项目[重复]
【发布时间】:2017-04-17 03:33:33
【问题描述】:

假设我们有一个类似这个的双精度数组,稍后用于其他东西。

double[] myArray = new double[25];

如何用一个设定值替换该数组中的所有值?

【问题讨论】:

  • var array = Enumerable.Range(0, 25).Select(_ => 0d).ToArray();

标签: c#


【解决方案1】:

“华而不实”的方式(只需新建一个数组):

var array = Enumerable.Repeat(value, count).ToArray();

或者

Array.ConvertAll(array, e => value);

【讨论】:

  • Showoff ;-) 投票。
  • 我认为写 myArray.Length 而不是count 更好?
  • Repeat 的效率低于 for 循环方法,并且 ConvertAll 用于不同的目的(转换类型),所以有点误导。它也使用for-loop[source]。
  • 华丽的方式将创建新的数组实例而不是更新现有的实例
  • @TimSchmelter 完全意识到这一点^^。我只是想完成Bathsheba的回答,因为他提到了flashy方式。当然,还有无数其他方式可以为此目的滥用内置方法。
【解决方案2】:

还有更炫的方法,但是

for (int i = 0; i < myArray.Length; ++i){
    myArray[i] = foo; /*the new value*/
}

简洁明了。

【讨论】:

  • 如果我们将其定义为i &lt; myArray.Length 会不会更好?
  • @AliBahraminezhad:你当然是对的。我已经捏住了。
猜你喜欢
  • 2016-03-26
  • 1970-01-01
  • 1970-01-01
  • 2021-05-30
  • 2022-12-13
  • 2020-11-10
  • 2017-09-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多