2009-03-28 5 views
2

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

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

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. –

+0

@Jim, c'est ce que je reçois pour poster avant que mon café soit fini. Correction des fautes de frappe – JaredPar

+0

Peut aussi vouloir vérifier que l'index> = 0. –

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

Questions connexes