> 백엔드 개발 > C++ > LINQ의 Cast() 또는 OfType(): 언제 어느 것을 사용해야 합니까?

LINQ의 Cast() 또는 OfType(): 언제 어느 것을 사용해야 합니까?

Susan Sarandon
풀어 주다: 2025-01-17 04:56:09
원래의
309명이 탐색했습니다.

Cast() or OfType() in LINQ: When Should I Use Which?

LINQ의 Cast()와 OfType()의 차이점: 심층 이해

LINQ에서는 다양한 유형의 요소가 포함될 수 있는 컬렉션으로 작업할 때 전체 컬렉션을 특정 유형으로 변환해야 할 수도 있습니다. LINQ에서는 이러한 목적을 위해 Cast() 및 OfType()이라는 두 가지 메서드를 제공합니다.

Cast() 메소드

Cast()는 컬렉션의 모든 요소를 지정된 유형으로 변환하려고 시도합니다. 요소를 성공적으로 캐스팅할 수 없는 경우 InvalidCastException이 발생합니다. 이 방법은 컬렉션의 모든 요소를 ​​필수 유형으로 변환할 수 있다고 확신할 때 유용합니다.

OfType() 메서드

Cast()와 달리 OfType()은 지정된 유형으로 안전하게 캐스팅할 수 있는 컬렉션의 요소만 반환합니다. 모든 요소를 ​​변환하려고 시도하지 않으므로 예외가 발생하지 않습니다. 이 방법은 변환할 수 있는 요소만 필터링하려는 경우에 유용합니다.

사용예

다음 코드를 고려하세요.

<code class="language-csharp">object[] objs = new object[] { "12345", 12 };</code>
로그인 후 복사

Cast()를 사용하여 이 배열을 문자열 컬렉션으로 변환하려고 하면 요소 중 하나가 정수이기 때문에 InvalidCastException이 발생합니다.

<code class="language-csharp">IEnumerable<string> someCollection = objs.Cast<string>();</code>
로그인 후 복사

그러나 OfType()을 사용하면 문자열로 안전하게 변환할 수 있는 요소만 반환됩니다.

<code class="language-csharp">IEnumerable<string> someCollection = objs.OfType<string>();</code>
로그인 후 복사

이 경우 someCollection에는 "12345"라는 하나의 요소만 포함됩니다.

요약

Cast() 및 OfType()은 혼합 유형 컬렉션 작업 시 서로 다른 용도로 사용되는 두 가지 LINQ 메서드입니다. Cast()는 모든 요소를 ​​캐스팅하려고 시도하는 반면 OfType()은 캐스팅하기에 안전한 요소만 선택합니다. 유형 캐스팅이 확실하다면 Cast()를 사용하고, 유효한 요소만 필터링하려면 OfType()을 사용하세요.

위 내용은 LINQ의 Cast() 또는 OfType(): 언제 어느 것을 사용해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿