我有一些对象A,B和C.
此对象的每个都有变量“Id”。我想编写从对象列表(List<A>, List<B> or List<C>
)
示例:
public T GetById(List<A> a, int id){ ..... }
编辑: 抱歉。访问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;
}
}
答案 0 :(得分: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子句 - &gt;所以在编译时要确保属性Id确实存在。