나는 직장에서 정말 나쁜 냄새가 나는 코드를 물려 받았습니다. 가능한 가장 고통스럽지 않은 해결책을 찾고 싶습니다.
임의의 숫자가 배열에서 유효한 요소인지 확인하는 방법이 있습니까?
예-array [25]가 있는지 확인해야합니다.
바람직하게는 행을 찾기 위해 배열을 통해 foreach ()를 수행하지 않고이 작업을 수행하는 것이 좋습니다.
이 작업을 수행하는 방법이 있습니까, 아니면 foreach 루프가 붙어 있습니까?
답변
길이 테스트
int index = 25;
if(index < array.Length)
{
//it exists
}
답변
LINQ를 사용하여이를 달성 할 수도 있습니다.
var exists = array.ElementAtOrDefault(index) != null;
답변
“유효한 요소”란 정확히 무엇을 의미합니까? 다음과 같이 할 수 있습니다.
if (array.Length >= 26)
이는 25가 배열에 대한 유효한 인덱스인지 여부를 알려줍니다 (하한이 0이라고 가정).
null이 아닌지 여부를 알아야하는 경우 다음을 사용하십시오.
if (array[25] != null)
(또는 둘의 조합).
이것이 도움이되지 않는다면 문제에 대해 “유효”라는 더 정확한 의미를 제공하십시오.
답변
항목이 null이 아닌지 확인하고 싶다고 가정합니다.
if (array.Length > 25 && array[25] != null)
{
//it exists
}
답변
// I'd modify this slightly to be more resilient to a bad parameter
// it will handle your case and better handle other cases given to it:
int index = 25;
if (index >= 0 && index < array.Length)
{
// Array element found
}
답변
배열의 길이를 사용하고 임의의 숫자가 해당 범위에 맞는지 확인할 수 있습니다. 예를 들어, 크기가 10 인 배열이있는 경우 25가 10보다 작지 않기 때문에 array [25]는 유효하지 않습니다.
답변
오히려 List를 사용하여 존재 여부를 확인할 수 있습니다.
List<int> l = new List<int>();
l.Add(45);
...
...
if (l.Count == 25) {
doStuff();
}
int num = 45;
if (l.Contains(num)) {
doMoreStuff();
}