2017-03-28 10 views
0

内の任意の要素が含まれているだけで、このような項目を選択し、私はクラスがあるとします。int配列

public class Item 
{ 
    ... 
    public IEnumerable<int> ClientsIds { get; set; } 
} 

し、次のコード:

List<Item> items = GetItems(); 
int[] ids = GetIds(); 

今、私はいずれかを含むだけで、このような項目を選択する必要がありますids int arrayの要素どうしたらいいですか?

+1

あなたはLINQを使用することができます。彼らの方法を試しましたか? – krillgar

+0

お読みください:http://stackoverflow.com/q/16322/1715004 –

+0

そしてこれは:https://stackoverflow.com/help/how-to-ask –

答えて

0

まあ簡単なWhereはそれを行う必要があります。

var filteredItems = items.Where(item => 
         item.ClientIds.Any(ids.Contains)).ToList(); 

私はここに拡張メソッドの必要性を見ることはありませんが、あなたはもちろん、それをカプセル化することができます:

public static IEnumerable<Item> FilterItems(this IEnumerable<Item> source, IEnumerable<int> filter) 
{ 
    return source.Where(item => item.ClientIds.Any(filter.Contains)); 
}