반응형
일반 목록 내의 모든 Null 요소를 한 번에 제거하려면 어떻게 해야 합니까?
에 정의되어 있는 디폴트 방식이 있습니까?Net for C#: 목록 내의 다음과 같은 모든 요소를 삭제합니다.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; });
심플하고 우아한 옵션이 또 있습니다.
parameters.OfType<EmailParameterClass>();
이렇게 하면 유형이 아닌 모든 요소가 제거됩니다.EmailParameterClass
분명히 어떤 유형의 요소도 걸러낼 것이다.null
.
다음은 테스트입니다.
class Program
{
class Test { }
static void Main(string[] args)
{
var list = new List<Test>();
list.Add(null);
Console.WriteLine(list.OfType<Test>().Count());// 0
list.Add(new Test());
Console.WriteLine(list.OfType<Test>().Count());// 1
Test test = null;
list.Add(test);
Console.WriteLine(list.OfType<Test>().Count());// 1
Console.ReadKey();
}
}
방법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)) {};
언급URL : https://stackoverflow.com/questions/3069748/how-to-remove-all-the-null-elements-inside-a-generic-list-in-one-go
반응형
'programing' 카테고리의 다른 글
Log4Net(애플리케이션 통찰력 포함) (0) | 2023.04.24 |
---|---|
각도 지시 - 컴파일, 컨트롤러, 프리링크 및 포스트링크를 사용하는 시기와 방법 (0) | 2023.04.24 |
디스크에서 이미 삭제된 여러 파일을 Git repo에서 제거 (0) | 2023.04.24 |
IF 함수 - 공식을 반복하지 않는 방법이 있습니까? (0) | 2023.04.24 |
폴더의 파일 수 (0) | 2023.04.24 |