簡體   English   中英

如何在C#中將類與泛型類型進行比較

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM