반응형
Find () 및 First ()는 예외를 throw합니다. 대신 null을 반환하는 방법은 무엇입니까?
목록을 검색 할 때 예외를 throw하는 대신 null을 반환하는 linq 람다 검색 메서드가 있습니까?
내 현재 솔루션은 다음과 같습니다. (예외가 발생하지 않도록)
if (list.Exists(x => x.Foo == Foo))
{
var listItem = list.Find(x => x.Foo == Foo);
}
표현을 반복하는 것은 잘못된 느낌입니다.
뭔가 ...
var listItem = list.Find(x => x.Foo == Foo);
if (listItem != null)
{
//Do stuff
}
... 기분이 나아졌습니다. 아니면 나뿐입니까?
이것에 대해 더 나은 접근 방식이 있습니까? (솔루션이 null을 반환 할 필요는 없으며 더 나은 솔루션이 좋습니다.)
var listItem = list.FirstOrDefault(x => x.Foo == Foo);
if (listItem != null)
{
//Do stuff
}
Bala R의 대답이 맞습니다. 정보를 추가하고 싶었습니다.
경우주의 List<T>에 의해 설계 null이 될 수 없습니다 객체를 포함, (가) FirstOrDefault보다 다른 뭔가를 반환합니다 null. 컴파일러는 if 문에서 이에 대한 경고 / 오류를 줄 가능성이 있습니다. 이 경우 다음과 같이 상황에 접근해야합니다.
List<MyObjectThatCannotBeNull> list;
var listItem = list.FirstOrDefault(x => x.Foo == Foo);
if (!listItem.Equals(default(MyObjectThatCannotBeNull)))
{
//Do stuff
}
반응형
'Program Club' 카테고리의 다른 글
| 대소 문자를 구분하지 않는 사전 (0) | 2020.11.29 |
|---|---|
| javascript 문자열을 html 객체로 변환 (0) | 2020.11.29 |
| 열에 항목을 정렬하기 위해 열 X까지 공백을 삽입하는 방법은 무엇입니까? (0) | 2020.11.29 |
| Android : launchMode =“singleTask”의 버그? (0) | 2020.11.28 |
| Spring MVC에서 init 바인더의 목적은 무엇입니까 (0) | 2020.11.28 |