배열의 인덱스가 존재합니까
나는 직장에서 정말 나쁜 냄새가 나는 코드를 물려 받았습니다. 나는 가능한 가장 고통스럽지 않은 해결책을 찾고 싶습니다.
임의의 숫자가 배열에서 유효한 요소인지 확인하는 방법이 있습니까?
예-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();
}
array.length
배열에 몇 개의 요소가 있는지 알려줍니다.
인덱스가 배열의 길이보다 작은 지 확인할 수 있습니다. 이것은 인덱스에 값을 할당 할 수 있지만 명시 적으로 부여하지 않은 널 또는 기타 이상한 경우를 확인하지 않습니다.
배열의 길이를 확인하여 항목 25가 배열에 있다는 의미에서 유효한지 확인할 수 있습니다.
if (array.Length > 25)
{
if (array[25] != null)
{
//good
}
}
배열 항목 자체가 설정되었는지 확인합니다.
It sounds very much like you're using an array to store different fields. This is definitely a code smell. I'd avoid using arrays as much as possible as they're generally not suitable (or needed) in high-level code.
Switching to a simple Dictionary may be a workable option in the short term. As would using a big property bag class. There are lots of options. The problem you have now is just a symptom of bad design, you should look at fixing the underlying problem rather than just patching the bad design so it kinda, sorta mostly works, for now.
참고URL : https://stackoverflow.com/questions/794760/does-index-of-array-exist
'programing' 카테고리의 다른 글
PHP에서 XMLReader를 사용하는 방법? (0) | 2020.10.20 |
---|---|
Windows 7, update.packages 문제 : "임시 설치를 이동할 수 없습니다"? (0) | 2020.10.20 |
Objective-C에서 두 개의 중첩 된 for 루프를 어떻게 나눌 수 있습니까? (0) | 2020.10.20 |
생성자가 null 객체를 반환 할 수 있습니까? (0) | 2020.10.20 |
마지막 결과뿐만 아니라 Jupyter에서 전체 출력을 표시하는 방법은 무엇입니까? (0) | 2020.10.19 |