2016-07-04 7 views
-6

いくつかのオブジェクトのIdプロパティを含むリストがあります。リスト内のパラメータ一致を含むリスト があります。 私は新しいリストが必要なリストを持っていますが、リストに一致するIDを持つオブジェクトだけです。 リストを取得<T>リストから

最高のパフォーマンスでこれを行う方法は?

List<MyClass> results = mylist.FindAll(x => listOfIds.Contains(x.ID)); 

それともlistOfIdsは、多くの多くのレコードを持っている場合:あなたが項目1を列挙する必要がある場合HashSet<T>

HashSet<int> hashedIds = new HashSet<int>(listOfIds); 
List<MyClass> results = mylist.FindAll(x => hashedIds.Contains(x.ID)); 

検索IdsはList<T>

よりもはるかに高速ですLINQを使用して

答えて

2

1つでは:

IEnumerable<MyClass> results = mylist.Where(x => listOfIds.Contains(x.ID)); 
foreach(MyClass item in results) 
{ 
    // do your work 
} 
関連する問題