Quelle est la méthode sûre pour accéder à un élément de tableau, sans lancer IndexOutOfRangeException
, quelque chose comme TryParse
, TryRead
, en utilisant des méthodes d'extension ou LINQ?Elément sûr de l'accès au tableau
2
A
Répondre
7
Vous pouvez utiliser la méthode d'extension suivante.
public static bool TryGetElement<T>(this T[] array, int index, out T element) {
if (index < array.Length) {
element = array[index];
return true;
}
element = default(T);
return false;
}
Exemple:
int[] array = GetSomeArray();
int value;
if (array.TryGetElement(5, out value)) {
...
}
0
Si vous voulez faire une boucle à travers les éléments du tableau en toute sécurité, il suffit d'utiliser un recenseur:
foreach (int item in theArray) {
// use the item variable to access the element
}
+0
Non, je lis l'argument de la ligne de commande et dois assurer l'existence de l'argument suivant sans lancer d'exception (sans sortie de boucle) – abatishchev
Vous devez changer array [i] pour tableau [ indice]. Aussi, je pense que votre logique est à l'envers. Si array.Length <= index, alors essayer d'accéder à array [index] va lancer une exception. –
@Jim, c'est ce que je reçois pour poster avant que mon café soit fini. Correction des fautes de frappe – JaredPar
Peut aussi vouloir vérifier que l'index> = 0. –