[英]How compare classes with generic types in C#
我怎么寫下面的代碼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();
}
UPDATE這是我的解決方案,到目前為止。 可以嗎
public IList<IElement> OfClass<T>()
{
return list
.Where(o => o is T)
.ToList();
}
您可以改為創建通用方法:
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>();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.