유창한 구문으로 쓰여졌을 때 같은 줄 내에서 LINQ 문을 "단락"하는 문법적 설탕이나 방법이 있습니까? 예를 들어 null
이 FirstOrDefault
호출에 의해 반환되면 null을 반환 할 수 있습니까? 그렇지 않으면 나머지 메서드 체인을 계속 진행할 수 있습니까? 문이 Reverse
통화에 발생하는 ArgumentNullException
을 던져 있도록임의의 지점에서 기본값이 반환되는 경우 LINQ 쿼리를 중지하십시오.
List<string> testList = new List<string>() { "some", "strings" };
var reversed = testList.FirstOrDefault(x => x == "hello").Reverse();
FirstOrDefault
호출은 null를 돌려줍니다. 그 시점에서 기본값이 반환되었으므로 Reverse
호출 전에 중지 할 수 있습니까?
는 (나는, 조건 연산자 (?:
)를 사용할 수있는 쿼리가 다른 라인으로 나눌 수 있습니다 및 default(T)
이 간단한 경우에, Reverse
전에 확인하거나 할 수 있다는 것을 알고 있지만 특정을 누락하는 경우 궁금 해요 더 길고 복잡한 사슬의 특징)
편집 - 이것은 단지 실제 코드의 일부가 아니라 생각을 보여주기위한 예입니다. 라인을 분리하고 수표를 찍는 것이 더 효과적이기 때문에 예외가 발생하지 않도록하고 싶습니다.
이 이해가되지 않습니다 -'FirstOrDefault()가'에만 그래서'() 역, 단일 요소를 반환합니다'여기에 이해가되지 않습니다 ... 당신은 무엇을 어떻게하려고? –
그것은 단지 인정받은 인위적인 예였습니다. 실제로 그 일을하고있는 것이 아니 었습니다. 그러나 메서드 체인을 계속 진행하는 대신 null을 반환해야하는 시나리오였습니다. – keyboardP