2016-06-24 6 views
0

からアイテムを取得し、私が持っているいくつかのオブジェクトAは、BとCのカスタムリスト

このオブジェクトのすべては、変数「ID」を持ちます。

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

EDIT: 申し訳ありませんが、私は、例のオブジェクトのリストからの戻り項目(List<A>, List<B> or List<C>

普遍的な方法を書きたいです。 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)` 

それとも、拡張メソッドとしてそれをしたい場合はA、B、Cがすべて同じ基本クラスのインターフェイスから派生している場合は

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

私も追加したいですwhere節を関数に渡します>コンパイル時にそのプロパティIDが実際に存在することを確認してください。

関連する問題