2016-06-24 3 views
0

У меня есть несколько объектов A, B и C.Извлечь товар из настраиваемого списка

Каждый из этих объектов имеет переменную «Id». Я хочу написать универсальный метод, возвращающий элемент из списка объекта (List<A>, List<B> or List<C>)

Пример:

public T GetById(List<A> a, int id){ ..... } 

EDIT: Извините. У меня проблема с доступом к свойствам Id.

public T GetById(List<A> a, int id) 
{ 
foreach(T item: a) 
{ 
if(item.Id==id) // error - dont know about Id properties at the moment 
return item; 
} 
} 
+1

В чем вопрос? Покажите нам, что вы пробовали –

ответ

2
`public T GetById<T>(List<T> list, int id)` 

Или, если вы хотите его как метод расширения

public static T GetById<T>(this List<T> list, int id) 
{ 
    return list.FirstOrDefalut(item => item.Id == id); 
} 

Если A, B, C являются производными от того же интерфейса базового класса я бы также добавить where clause to function -> так что во время компиляции это свойство Id действительно существует.