私は、さまざまなクラスオブジェクトを含むことができる汎用リストを持っています。 Alこれらのクラスは、Idプロパティを持つ同じ基本クラスを持っています。検索一般リスト<T> Idプロパティ
私はプロパティに取得することはできませんしかし、私は唯一の限りを取得、一覧でIDを検索を行うと、最初のoccourenceを抽出するために、この
T result = myGenericList.Where(i => i.Id == id).FirstOrDefault()
ような何かをしたいと思います:私= > i。
EDIT: myGenericListのコードを入力するよう求められます。ここではそれが行く:
public static IEnumerable<T> Initialize()
{
List<T> allCalls = new List<T>();
var phoneCalls = new PhoneCall[]
{
new PhoneCall{Id = 1, Date= DateTime.Now.AddDays(-1), DurationSec = 60, Phone = "", Region = new Country { From = "", To = ""}},
...
};
foreach (PhoneCall s in phoneCalls)
{
allCalls.Add(s as T);
}
var dataCalls = new DataCall[]
{
new DataCall{Id = 6, WebData = 5120, Phone = "", Region = new Country { From = "", To = ""}},
...
};
foreach (DataCall s in dataCalls)
{
allCalls.Add(s as T);
}
var smsCalls = new SmsCall[]
{
new SmsCall{Id = 6, SmsData = 512, Phone = "", Region = new Country { From = "", To = ""}},
...
};
foreach (SmsCall s in smsCalls)
{
allCalls.Add(s as T);
}
return allCalls;
あなたは何をすべき私はRepository.csクラスの先頭で定義したクラス
public class Repository<T> : IRepository<T> where T : class
'myGenericList' –
Tが何であるの宣言を示してください?タイプTに正しくキャスティングされていますか?また、myGenericListを共有できますか? –
私は、Tプロパティが定義されているT:BaseClass制約が存在しないと思います。おそらく、これはまだ一般的な入力タイプをまだ何かに制限していない拡張メソッドでした。 –