代码之家  ›  专栏  ›  技术社区  ›  nullDev

此代码是否有等效的LINQ?

  •  1
  • nullDev  · 技术社区  · 15 年前

    我是LINQ的初学者。

    CAN代码 GetAnimals<T>() 是用LINQ写的吗?

    ObservableCollection<Animal> allAnimals = new ObservableCollection<Animal>();
    
    public IEnumerable<T> GetAnimals<T>() where T: Animal
    {
        foreach (var animal in allAnimals)
            if (animal.GetType() == typeof(T))
                yield return (T)animal;
    }
    
    2 回复  |  直到 6 年前
        1
  •  10
  •   ICR    15 年前

    你想要 Enumerable.OfType :

    public IEnumerable<T> GetAnimals<T>() where T: Animal
    {
        return allAnimals.OfType<T>();
    }
    
        2
  •  4
  •   bruno conde    15 年前

    已经有了此的扩展方法: OfType