如何过滤对象集合

时间:2014-03-04 16:43:19

标签: c# collections

我有动物课。草食动物类,继承自动物和大象类,继承自食草动物。我还有一个食肉动物类,它继承自动物和老虎类,它继承了食肉动物。我有一个名为动物园的可观察的收藏品,里面有老虎和大象。我有一个与动物园集合挂钩的列表框。如何过滤,例如当点击一个按钮只是为了显示老虎或例如显示大象。我试过这个例如 buttonCLick事件

        ObservableCollection<Animal> veg = new ObservableCollection<Animal>();

        foreach (Herbivore h in lstBoxAnimals.Items)
        {
            veg.Add(h);
        }
        lstBoxAnimals.ItemsSource = veg;

无效的强制转换异常是错误消息有不同的方法吗?

1 个答案:

答案 0 :(得分:2)

您可以使用Enumerable.OfType<T>之类的:

foreach (var h in lstBoxAnimals.Items.OfType<Herbivore>())
{
  veg.Add(h);
}