2015-01-08 2 views
-6

문자열 배열이 null이거나 비어 있는지 확인해야합니다. 내 코드는 다음과 같습니다. 둘 다 작동하지 않습니다. 배열에 값이있는 것처럼 초기화되지는 않지만 값을 포함하는 것처럼 나타납니다. 누군가 도움을 줄 수 있습니까?배열이 null 또는 비어 있는지 확인

string abc[] = new string[3]; 

first code 

if(abc != null) 
{ 

} 

second code 

if(IsNullOrEmpty(abc)) 
{ 

} 

public static bool IsNullOrEmpty<T>(T[] array) 
{ 
    return array == null || array.Length == 0; 
} 
+2

배열이 null도 아니며 비어 있지 않습니다. 코드가 작동합니다. –

+0

'어레이가 값을 포함하고있는 것처럼 보이는 값으로 배열이 초기화되지는 않지만'어디서 값이 표시됩니까? –

+0

'bool IsNullOrEmpty (string [] array)로 시도 했습니까? {return array == null || array.Any (x => String.IsNullOrEmpty (x)); }'. 배열 원소는'null' 또는'String.Empty' 일 수도 있습니다 (검사하고자하는 것이면). 배열 자체는 단지'null'이나 길이가 0이 될 수 있습니다 (코드에는 없습니다). '.Any'를'.All'로 자유롭게 바꾸십시오 (MSDN 참고). –

답변

9

이 라인 :

string abc[] = new string[3]; 

널이 아닌, 비어 배열 (크기가 3이며 3 개 널 레퍼런스를 포함)을 생성.

물론 IsNullOrEmpty()는 false를 반환합니다.

아마 배열에 null 참조 만 포함되어 있는지 확인하고 싶습니까? 이렇게 할 수 있습니다.

public static bool IsNullOrEmpty<T>(T[] array) where T: class 
{ 
    if (array == null || array.Length == 0) 
     return true; 
    else 
     return array.All(item => item == null); 
} 
+0

어떻게 할 수 있습니까? – user3751248

+0

@ user3751248 코드가 최신 편집입니다. –

+0

감사합니다. – user3751248

관련 문제