1. Cast 메서드
- 컬렉션의 형을 변환해주는 메서드입니다.
- 하지만 Cast메서드를 사용해도 형이 맞지 않을 때, 예외가 발생합니다.
static void Example_Cast() { object[] arr = { 1, 2, 3,"test" }; var q = arr.Cast<int>(); Console.WriteLine($"q의 합계 :{q.Sum()}"); }
- 1.1 Cast() 사용예제
1.2 실행 결과
- 배열에 string문자열을 int형으로 변환 하려해서 예외 발생합니다.
2. OfType메서드
- 컬렉션의 형을 변환해주는 메서드입니다.
- 변환할 수 없는 요소는 무시하는 LINQ 메서드입니다.
- 예외 발생하지 않습니다.
2.1 OfType() 사용 예제
static void Example_OfType()
{
object[] arr = { 1, 2, 3, "test" };
var q = arr.OfType<int>();
Console.WriteLine($"q의 합계 : {q.Sum()}");
Console.WriteLine($"q의 개수 : {q.Count()}");
}
2.2 실행 결과
- int형으로 변환 가능한 요소들만 처리합니다.
3. 정리
- Cast 메서드는 단순히 형 변환 합니다.
- 형 변환 실패하는 요소가 있으면 예외가 발생할 수 있습니다.
- OfType 메서드는 형 변환 + 일치하는 데이터를 추출합니다.
- 형 변환 실패해도 예외가 발생하지 않습니다.
- 형 변환 실패 시 예외처리가 필요한 경우 Cast메서드를, 예외가 필요없으면 OfType메서드를 선택하여 사용하는 것이 좋습니다.
참고
'프로그래밍 > (도서)C#코딩의기술-실전' 카테고리의 다른 글
[C#] 코딩의기술(실전편) - 3.13 열거 데이터의 순서 변경 (0) | 2022.03.31 |
---|---|
[C#] 코딩의기술(실전편) - 3.12 First메서드 VS Take메서드 (0) | 2022.03.31 |
[C#] 코딩의기술(실전편) - 3.5 짧은쿼리 VS 긴 쿼리 (0) | 2022.03.31 |
[C#] 코딩의기술(실전편) - 3.4 배열 VS IEnumerable<T> (0) | 2022.03.31 |
[C#] 코딩의기술(실전편) - 3.3 OrderBy VS Sort (0) | 2022.03.31 |