我有一個對象字典,所有不同的類型,但派生自相同的基類,並希望找到一個特定的。我想我可以使用「.OfType()」過濾給定類型的對象的字典,但沒有找到任何東西。IEnumerable.OfType()不按預期工作
我不明白什麼?
class Program
{
static Dictionary<String, Animal> critters;
static void Main(string[] args)
{
critters = new Dictionary<String, Animal>();
critters.Add("Tiddles", new Cat());
critters.Add("Rover", new Dog());
critters.Add("Bob", new Fish());
Animal rover = GetAnimal<Dog>();
}
// Finds first animal of the specified type.
static T GetAnimal<T>() where T : Animal
{
var qry = from animal in critters.OfType<T>()
select animal;
return (qry.Count() > 0) ? qry.First() : null;
}
}
class Animal { }
class Dog : Animal { }
class Cat : Animal { }
class Fish : Animal { }
感謝,
羅斯
這樣的空查詢表達式也沒有意義。只是'critters.OfType().FirstOrDefault()'將是最好的...... –
+1喬恩Skeet同意,我上面更新。 – Nix
0.1對於寬鬆vs失去:)。 – Shibumi