확장 메서드 또는 LINQ를 사용하여 TryParse
, TryRead
같은 문자를 IndexOutOfRangeException
으로 던지지 않고 배열 요소에 액세스하는 안전한 방법은 무엇입니까?배열 액세스의 안전한 요소
2
A
답변
7
다음 확장 방법을 사용할 수 있습니다.
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;
}
예 :
int[] array = GetSomeArray();
int value;
if (array.TryGetElement(5, out value)) {
...
}
0
방금 열거 사용, 안전하게 배열의 요소를 통해 루프를 원하는 경우 : [내가] 배열에
foreach (int item in theArray) {
// use the item variable to access the element
}
+0
아니요, 명령 줄 인수를 읽고 예외를 throw하지 않고 다음 인수의 존재를 보장해야합니다 (루프를 종료하지 않고). – abatishchev
당신은 변경해야 배열을 [ 색인]. 또한, 나는 당신의 논리가 거꾸로 생각합니다. array.Length <= index 인 경우 array [index]에 액세스하려고하면 예외가 발생합니다. –
@ 짐, 내가 커피를 마시기 전에 내가 게시하기 위해 얻는 것이다. – JaredPar
오타가> 0인지 확인하고 싶을 수도 있습니다. –