从自定义列表中检索项目

时间:2016-06-24 11:06:56

标签: c#

我有一些对象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;
}
}

1 个答案:

答案 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确实存在。