是否有一种简单的方法(可能是一种方法)从列表中检索一个对象,具体取决于它的一个属性是否与所请求的属性匹配?
例如,如果我有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;
}
Run Code Online (Sandbox Code Playgroud)
这是某种实现的功能吗?
您可以使用LINQ,这通常是最简单的方法.这样的事情可能是:
IEnumerable<Animal> getAnimalWithSize42(IEnumerable<Animal> animList)
{
return animList.Where(animal => animal.Size == 42);
}
Run Code Online (Sandbox Code Playgroud)
如果你想要光滑 - 你甚至可以让调用者传入他们想要检索的内容:
IEnumerable<Animal> getAnimalsMeetingCriteria(IEnumerable<Animal> animals, Func<Animal, bool> filter)
{
return animals.Where(filter);
}
Run Code Online (Sandbox Code Playgroud)
确保System.Linq
在文件中添加需要使用它的引用.
归档时间: |
|
查看次数: |
60 次 |
最近记录: |