如何用相同的值替换双精度数组中的所有项目[重复]
Posted
技术标签:
【中文标题】如何用相同的值替换双精度数组中的所有项目[重复]【英文标题】: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();
【参考方案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 < myArray.Length
会不会更好?
@AliBahraminezhad:你当然是对的。我已经捏住了。以上是关于如何用相同的值替换双精度数组中的所有项目[重复]的主要内容,如果未能解决你的问题,请参考以下文章