Je crée une nouvelle liste C # (List<double>
). Existe-t-il un moyen, autre que de faire une boucle sur la liste, d'initialiser toutes les valeurs de départ à 0?
En plus des solutions fonctionnelles fournies (en utilisant les méthodes statiques de la classe Enumerable
), vous pouvez passer un tableau de double
s dans le constructeur.
var tenDoubles = new List<double>(new double[10]);
Cela fonctionne car la valeur par défaut d'un double
est déjà 0 et fonctionne probablement légèrement mieux.
Vous pouvez utiliser l'initialiseur:
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()};
Vous pourriez donc utiliser ceci:
var listInt = new List<double> {0.0, 0.0, 0.0, 0.0};
Sinon, en utilisant le constructeur par défaut, la liste sera vide.
Utilisez ce code:
Enumerable.Repeat(0d, 25).ToList();
new List<double>(new double[25]); //Array elements default to 0
Une possibilité consiste à utiliser Enumerable.Range
:
int capacity;
var list = Enumerable.Range(0, capacity).Select(i => 0d).ToList();
Un autre est:
int capacity;
var list = new List<double>(new double[capacity]);
Un peu en retard, mais peut-être toujours intéressant: en utilisant LINQ, essayez
var initializedList = new double[10].ToList()
... j'espère éviter de copier la liste (c'est à LINQ maintenant).
Cela devrait être un commentaire à la réponse de Michael Meadows, mais je manque de réputation.