2015-01-28 2 views
0

У меня есть список объектов, которые имеют базовый тип T, но все они представляют собой разные подклассы T1, T2 и т. Д., Которые наследуют от T. Существует один объект каждого введите этот список.Получение объекта из списка унаследованных классов в C#

Как получить элемент из списка типа T1?

+0

Посмотрите на 'is' ключевое слово (Несмотря/В дополнение к ответам Linq, посмотрите на петлях, а) –

ответ

4

Вы можете использовать Enumerable.OfType<T> как:

var itemsOfT1 = yourList.OfType<T1>(); 

Если вам нужен один элемент, то используйте:

var itemOfT1 = yourList.OfType<T1>().FirstOrDefault(); 

См: Enumerable.OfType<T>

Фильтры элементы IEnumerable на основе указанного типа.

1

Вы можете сделать это:

T1 t1=null; 
foreach(var item in list) 
    { 
    if(item is T1) 
    { 
    t1 =item as T1; 
    break; 
    } 
    } 
Смежные вопросы