“L'Index était hors de portée. Doit être non négatif et inférieur à la taille de la collection.\r\nParameter nom: index”
Pour la création d'une liste avec 100 nombre aléatoire entre 0 et 1 que j'ai écrit ci-dessous le code que j'ai reçu l'erreur.
public List<float> random()
{
List<float> storerandomvalues = new List<float>(100);
Random randomvalues = new Random();
float randomnum;
for (int counter = 0; counter < 100; counter++)
{
randomnum = 0f;
randomnum = randomvalues.Next(1);
storerandomvalues[counter]= randomnum; //the error
}
return storerandomvalues;
}
Utilisation
List.Add
.
OriginalL'auteur user3371238 | 2014-03-02
Vous devez vous connecter pour publier un commentaire.
Utilisation
List<T>.Ajouter
méthode au lieu de cela,storerandomvalues
n'est pas un tableau.Vous ne pouvez pas ajouter des éléments avec l'indexeur pour une liste générique.Vous pouvez utiliser de l'indexeur seulement à modifier les éléments existants.OriginalL'auteur Selman Genç
Vous êtes en train de créer vide
storerandomvalues
(sans objets). Paramètre dans laList<>
constructeur est la capacité de la liste seulement.La meilleure solution dans votre cas est d'utiliser de tableau au lieu de
List<>
(parce que dans votre cas, le nombre d'articles de la collection est une constante):Oui peut-être, mais à l'aide de
List.Add
dans la boucle, lorsque le nombre d'itérations est constante ... c'est une très mauvaise pratique.Pourquoi est-ce une mauvaise pratique? Je suis totalement d'dis-d'accord.
Merci @Alexandre. Si je veux définir ce tableau "storerandomvalues" comme globale. que dois-je faire?
juste ajouter
private readonly int[] _storerandomvalues = new int[100]
dans votre classe.OriginalL'auteur alexmac
utilisation
pas
OriginalL'auteur Hogan