2010-08-17 4 views
9

derC# Linq String [] Liste minus von String [] Liste

string[] admins = "aron, mike, bob"; 
string[] users = "mike, katie, sarah"; 

sagen lassen, wie kann ich die Benutzer nehmen und von den admins jeder Streifen aus.

das Ergebnis sollte "Katie, Sarah" sein; (Mike wurde entfernt)

Gibt es eine nette Linq Möglichkeit, dies zu tun?

Antwort

14
// as you may know, this is the right method to declare arrays  
string[] admins = {"aron", "mike", "bob"}; 
string[] users = {"mike", "katie", "sarah"}; 

// use "Except" 
var exceptAdmins = users.Except(admins); 
+3

Eigentlich, das ist nicht richtig, entweder: 'string [] admins = {"aron", "mike", "bob"}; ' –

+0

Danke James, du hast Recht. Die Zitate wurden hinzugefügt. –

+0

Dies ist: string [] Kunden = Roles.GetUsersInRole ("Kunde"); \t \t \t \t \t string [] admins = Rollen.GetUsersInRole ("admin"); \t \t \t \t \t String [] result = customers.Except (Kunden, Administratoren); gibt mir diese Fehlermeldung: Die Typargumente für die Methode ‚System.Linq.Enumerable.Except (System.Collections.Generic.IEnumerable , System.Collections.Generic.IEnumerable , System.Collections.Generic.IEqualityComparer ) "lässt sich aus der Verwendung nicht ableiten. Versuchen Sie, die Typargumente explizit anzugeben. – aron