2009-03-28 17 views

Antwort

7

Sie könnten die folgende Erweiterungsmethode verwenden.

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; 
} 

Beispiel:

int[] array = GetSomeArray(); 
int value; 
if (array.TryGetElement(5, out value)) { 
    ... 
} 
+0

Sie sollten Array ändern [i] zu array [ Index]. Außerdem denke ich, dass deine Logik rückwärts ist. Wenn array.Length <= index ist, wird beim Versuch, auf array [index] zuzugreifen, eine Ausnahme ausgelöst. –

+0

@Jim, das bekomme ich, bevor ich meinen Kaffee fertig habe. Die Tippfehler wurden korrigiert – JaredPar

+0

Vielleicht möchte ich auch diesen Index> = 0 überprüfen. –

0

Wenn Sie sicher in der Anordnung durch die Elemente in einer Schleife, nur einen Enumerator verwenden:

foreach (int item in theArray) { 
    // use the item variable to access the element 
} 
+0

Nein, ich lese Befehlszeilenargument und muss die Existenz des nächsten Arguments sicherstellen, ohne eine Ausnahme auszulösen (ohne Loop-Exit). – abatishchev