나는 이것을 동료들과 논의 하고 있으며 C #에서 .Any
어떤 용도로 사용되는지 알 수 없었습니다 List<>
.
다음 명령문과 같이 배열에서 요소의 유효성을 확인할 수 있습니다.
if (MyList.Any()){ ...} //Returns true or false
정확히 같은
if (MyList.Count() != 0) { ... }
그리고 if
성명서 의 의도에 대해 훨씬 더 일반적이고 읽기 쉽고 명확 합니다.
결국 우리는이 생각에 갇혀있었습니다.
.Any()
사용할 수 있고, 잘 작동하지만 프로그래머의 의도에 대해서는 명확하지 않으며,이 경우에는 사용해서는 안됩니다.
그러나 우리는 이것이 옳지 않다고 생각합니다. 우리는 무언가를 놓치고 있어야합니다.
우리는?
Any()
덜 분명한 당신의 주장에 도전합니다 . Any()
특히 람다 상태에서 더 명확 해 보입니다. 머리에서 영어로 코드를 번역 if(MyList.Count(o => o > 10) > 0)
하면 "10보다 큰 항목 수가 0보다 큽니까?"가됩니다. 반면 if(MyList.Any(o => o > 10))
된다 "이 모든 항목은 10보다 큰?"
Any
은 Exists
입니다. Linq 이름은 아마도 모든 기능을 가진 Haskell과 Python에서 더 영감을 얻었습니다.