是否有一种简单的方法(可能是一种方法)从列表中检索对象,具体取决于其属性是否与请求的属性匹配?
例如,如果我有 List<Animal>
和 Animal
类有一个属性 Size
.如何从列表中获取对象 Size=42
?这就像过滤,但没有更简单快捷的方法吗?使用ICollectionView
.
public Animal getAnimalWithSize42 (List<Animal> animList)
{
List<Animal> size42Animals = new List<Animal>
foreach (Animal anim in animList)
{
if(anim.Size==42)
size42Animals.Add(anim);
}
return size42Animals;
}
这是某种实现的功能吗?
最佳答案
您可以使用 LINQ,这通常是最简单的方法。可能是这样的:
IEnumerable<Animal> getAnimalWithSize42(IEnumerable<Animal> animList)
{
return animList.Where(animal => animal.Size == 42);
}
如果你想变得漂亮 - 你甚至可以让调用者传递他们想要检索的内容:
IEnumerable<Animal> getAnimalsMeetingCriteria(IEnumerable<Animal> animals, Func<Animal, bool> filter)
{
return animals.Where(filter);
}
确保添加对
System.Linq
的引用在需要使用它的文件中。
关于c# - 列表过滤变体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16964092/