프로그래밍/C#

[C#] List<object>를 특정 클래스 타입의 List로 캐스팅하는 방법

흔한티벳여우 2023. 3. 27. 15:00
반응형

오늘은 C#에서 List<object>를 특정 클래스 타입의 List로 캐스팅하는 방법에 대해 알아보겠습니다. 가끔 우리는 List<object>에 특정 클래스 타입의 객체만 포함되어 있다는 것을 알고 있지만, 이를 해당 클래스 타입의 List로 변환해야 하는 상황이 있습니다. 이 경우, LINQ를 사용하여 쉽게 캐스팅할 수 있습니다.

예를 들어, ImageData라는 클래스 타입의 객체만 포함된 List<object>가 있다고 가정해봅시다. 이제 이 List<object>를 List<ImageData>로 캐스팅하고자 합니다.

먼저, 필요한 네임스페이스를 추가합니다.

using System.Collections.Generic;
using System.Linq;

다음으로, 이미 존재하는 List<object>List<ImageData>로 변환하기 위해 LINQ의 OfType<T> 메서드를 사용합니다.

 

List<object> objList = new List<object>
{
    new ImageData(),
    new ImageData(),
    // ...
};

List<ImageData> imageDataList = objList.OfType<ImageData>().ToList();

위의 코드에서, OfType<ImageData>() 메서드는 objList의 모든 요소 중 ImageData 타입의 요소만 추출합니다. 이후, ToList() 메서드를 사용하여 이를 새로운 List<ImageData> 객체로 변환합니다.

이렇게 간단한 몇 줄의 코드로 List<object>를 특정 클래스 타입의 List로 캐스팅할 수 있습니다. LINQ는 C#에서 데이터를 처리하는 데 매우 유용한 도구이므로, 다양한 쿼리 작업을 수행할 때 적극 활용해보시길 바랍니다.

반응형