我有一个通用列表可以包含不同的类对象。这些类具有相同的具有Id属性的基类。搜索通用列表<T>为Id属性
我愿做此ID在列表中搜索和提取第一occourence,像这样
T result = myGenericList.Where(i => i.Id == id).FirstOrDefault()
但是我不能去的属性,我只得到尽可能为:I = >我。
编辑: 我被要求提供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;
关于第t是
public class Repository<T> : IRepository<T> where T : class
请出示的'myGenericList' –
什么是T中的声明?它是否正确转换为T型?你也可以请分享myGenericList? –
我猜T缺少T:BaseClass约束,它定义了Id属性。也许这是一种扩展方法,它尚未将通用输入类型限制为任何东西。 –