1

プロパティの1つが要求されたものと一致するかどうかに応じて、リストからオブジェクトを取得する簡単な方法(おそらくメソッド)はありますか?

たとえば、私が持ってい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;
}

これはある種の実装された機能ですか?

4

4 に答える 4

5

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これを使用する必要があるファイルに参照を追加してください。

于 2013-06-06T14:01:49.697 に答える
4

LINQ を使用できます。

return animList.Where(anim => anim.Size == 42);
于 2013-06-06T14:02:23.937 に答える