LINQ의 유형 변환: Cast() 및 OfType() 메서드에 대한 자세한 설명
LINQ(Language Integrated Query)는 개발자가 익숙한 구문을 사용하여 데이터를 쿼리하고 변환할 수 있는 .NET 프레임워크의 강력한 도구입니다. ArrayList의 요소를 IEnumerable
Cast() 메소드
Cast() 메서드는 ArrayList의 모든 요소를 지정된 유형으로 명시적으로 변환하는 데 사용됩니다. 실제 유형에 관계없이 각 요소를 대상 유형으로 캐스팅하려고 시도합니다. 요소 캐스팅에 실패하면 InvalidCastException이 발생합니다.
OfType() 메서드
OfType() 메서드는 대상 유형으로 안전하게 변환할 수 있는 요소만 선택적으로 변환합니다. 지정된 유형과 일치하는 요소만 포함하는 IEnumerable
Cast() 및 OfType() 메서드에 적용 가능한 시나리오
Cast() 또는 OfType() 선택은 특정 요구 사항에 따라 다릅니다.
Cast() 사용:
OfType() 사용:
예
문자열과 정수를 포함하는 ArrayList가 있다고 가정해 보겠습니다.
<code class="language-csharp">object[] objs = new object[] { "12345", 12 };</code>
Cast() 사용:
<code class="language-csharp"> try { string[] strArr = objs.Cast<string>().ToArray(); } catch (InvalidCastException) { // 处理异常 }</code>
이 경우 Cast()는 두 요소를 모두 문자열로 변환하려고 시도합니다. 그 중 하나가 정수이므로 InvalidCastException이 발생합니다.
OfType() 사용:
<code class="language-csharp"> string[] strArr = objs.OfType<string>().ToArray(); // 只包含 "12345"</code>
OfType()은 ArrayList에서 문자열 요소를 성공적으로 검색하고 정수 요소를 제외합니다.
Cast()와 OfType()의 차이점을 이해하면 LINQ를 사용할 때 유형을 효과적으로 변환하고 데이터를 필터링하여 쿼리의 정확성과 신뢰성을 보장할 수 있습니다.
위 내용은 LINQ의 Cast() 및 OfType(): 유형 변환에 각각을 언제 사용해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!