新しいC#リスト(List<double>
)。リストをループする以外に、すべての開始値を0に初期化する方法はありますか?
(Enumerable
クラスの静的メソッドを使用して)提供される機能的なソリューションに加えて、コンストラクターでdouble
sの配列を渡すことができます。
var tenDoubles = new List<double>(new double[10]);
これは、double
のデフォルト値がすでに0であり、おそらくわずかにパフォーマンスが向上するために機能します。
初期化子を使用できます:
var listInt = new List<int> {4, 5, 6, 7};
var listString = new List<string> {"string1", "hello", "world"};
var listCustomObjects = new List<Animal> {new Cat(), new Dog(), new Horse()};
したがって、これを使用できます:
var listInt = new List<double> {0.0, 0.0, 0.0, 0.0};
それ以外の場合、デフォルトのコンストラクタを使用すると、リストは空になります。
このコードを使用してください:
Enumerable.Repeat(0d, 25).ToList();
new List<double>(new double[25]); //Array elements default to 0
可能性の1つは、 Enumerable.Range
:
int capacity;
var list = Enumerable.Range(0, capacity).Select(i => 0d).ToList();
もう一つは:
int capacity;
var list = new List<double>(new double[capacity]);
少し遅れていますが、まだ興味があるかもしれません:LINQを使用して、
var initializedList = new double[10].ToList()
...できればリストのコピーを避けてください(現在はLINQに任されています)。
これはマイケル・メドウズの答えに対するコメントであるべきですが、私は評判に欠けています。