如何使用is T
public IList<IElement> OfClass(Type type)
{
return list
.Where(o => o.GetType() == type)
.ToList();
}
这样的事情:
public IList<IEtabsElement> OfClass(....)
{
return list
.Where(o => o is ...)
.ToList();
}
更新 到目前为止,这是我的解决方案。好吗?
public IList<IElement> OfClass<T>()
{
return list
.Where(o => o is T)
.ToList();
}
答案 0 :(得分:2)
您可以改为创建通用方法:
public IList<T> OfClass<T>()
{
return list
.Where(o => o.GetType() == typeof(T))
.ToList();
}
这可行,但与现有方法OfType
相同,例如:
var myvehicles = new List<Vehicle> { new Car(), new Bike()};
var mycars = myvehicles.OfType<Car>();