LINQ의 유형 변환 방법: Cast()와 OfType() 비교
유형 변환에 LINQ를 사용할 때 사용되는 두 가지 주요 방법은 Cast()
및 OfType()
입니다. 효율적인 데이터 조작을 위해서는 이 두 가지 접근 방식의 미묘한 차이를 이해하는 것이 중요합니다.
Cast() 메소드
Cast()
메소드는 IEnumerable
의 각 요소를 지정된 대상 유형으로 변환하려고 시도합니다. 필터링 작업을 수행하지 않고 단순히 모든 요소를 변환하려고 시도합니다. 일부 요소를 성공적으로 변환할 수 없는 경우 InvalidCastException
예외가 발생할 수 있습니다.
OfType() 메서드
OfType()
메서드는 요소를 변환하기 전에 유형에 따라 필터링합니다. 대상 유형으로 안전하게 변환할 수 있는 요소만 포함된 IEnumerable
를 반환합니다.
사용 시나리오
각 방법을 사용하는 시기는 원하는 동작에 따라 다릅니다.
Cast()를 사용하는 경우:
OfType()을 사용하는 경우:
설명 예시
다음 예를 고려해 보세요.
<code class="language-csharp">object[] objs = new object[] { "12345", 12 }; IEnumerable<string> castCollection = objs.Cast<string>().ToArray(); // 抛出 InvalidCastException 异常 IEnumerable<string> ofTypeCollection = objs.OfType<string>().ToArray(); // 返回 { "12345" }</code>
이 예에서 Cast()
는 모든 요소를 변환하려고 시도하여 InvalidCastException
예외를 발생시킵니다. 그러나 OfType()
은 정수 요소를 필터링하고 "12345"만 반환합니다.
요약
Cast()
과 OfType()
의 차이점을 이해함으로써 개발자는 LINQ 쿼리에서 보다 대상이 명확하고 효율적인 유형 변환 작업을 수행하여 더 명확하고 강력한 코드를 생성할 수 있습니다.
위 내용은 LINQ 캐스팅: Cast()와 OfType()을 언제 사용해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!