programing

한 번에 일반 목록 내의 모든 null 요소를 제거하는 방법은 무엇입니까?

nasanasas 2020. 8. 14. 07:52
반응형

한 번에 일반 목록 내의 모든 null 요소를 제거하는 방법은 무엇입니까?


목록 내의 모든 요소를 ​​제거하기 위해 C # 용 .Net에 정의 된 기본 메서드가 null있습니까?

List<EmailParameterClass> parameterList = new List<EmailParameterClass>{param1, param2, param3...};

매개 변수 중 일부는 다음과 같습니다 null. 미리 알 수 없으며 목록에서 null이 아닌 매개 변수 만 포함되도록 목록에서 제거하고 싶습니다.


아마도 다음을 원할 것입니다.

List<EmailParameterClass> parameterList = new List<EmailParameterClass>{param1, param2, param3...};
parameterList.RemoveAll(item => item == null);

내장 방법은 모르지만 linq를 사용할 수 있습니다.

parameterList = parameterList.Where(x => x != null).ToList();

RemoveAll 메서드는 트릭을 수행해야합니다.

parameterList.RemoveAll(delegate (object o) { return o == null; });

이 메서드 OfType()는 null 값을 건너 뜁니다.

List<EmailParameterClass> parameterList =
    new List<EmailParameterClass>{param1, param2, param3...};

IList<EmailParameterClass> parameterList_notnull = 
    parameterList.OfType<EmailParameterClass>();

List<EmailParameterClass> parameterList = new List<EmailParameterClass>{param1, param2, param3...};

parameterList = parameterList.Where(param => param != null).ToList();

쉽고 LINQ없이 :

while (parameterList.Remove(null)) {};

또 다른 간단하고 우아한 옵션이 있습니다.

parameters.OfType<EmailParameterClass>();

이것은 유형이 아닌 모든 요소를 ​​제거하여 EmailParameterClass분명히 유형의 요소를 필터링합니다 null.

참고 URL : https://stackoverflow.com/questions/3069748/how-to-remove-all-the-null-elements-inside-a-generic-list-in-one-go

반응형