2017-03-28 5 views
0

Angenommen, ich habe eine Klasse:, dass jedes Element enthalten in int Array

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

Und den folgenden Code:

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

Jetzt muss ich nur solche Elemente auswählen, die jeder enthalten Element im Array IDs Int. Wie kann ich es tun?

+1

Sie können LINQ verwenden . Hast du irgendeine ihrer Methoden versucht? – krillgar

+0

Bitte lesen Sie: http://StackOverflow.com/q/16322/1715004 –

+0

Und dies: https://StackOverflow.com/Help/how-to-ask –

Antwort

0

Nun ein einfaches Where sollte es tun:

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

ich hier keine Notwendigkeit für eine Erweiterungsmethode sehen, aber man könnte es natürlich kapseln:

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