返回实现接口的所有通用列表对象

时间:2011-01-12 19:30:05

标签: c# interface

我正在尝试返回实现IHerd的所有Animal对象。

有人能指出我的方向吗?

public interface IHerd {
        void Herd();
    }

    public class Dog : Animals, IHerd {
        public void Herd() {
            // Swim method
        }
    }

    public class Animals {
        public void Eat() { }
        public void Poop() { }
    }

    public class Farm {
        public List<Animals> FarmAnimals = new List<Animals>();

        public Animals GetHerders() {
            return FarmAnimals.OfType<IHerd>();
        }
    }

3 个答案:

答案 0 :(得分:2)

FarmAnimals.Where(x => x is IHerd)

答案 1 :(得分:2)

return Animals.OfType<IHerd>().OfType<Animals>()

答案 2 :(得分:1)

return Animals.OfType<IHerd>().Cast<Animals>().ToList();

您还需要更改返回类型以匹配