2013-09-10 25 views
5

Mam 2 tabliceSprawdź elementy tablicy ciąg zawiera tylko elementy w innej tablicy

string[] allPossible = {"ID","Age","FirstName","LastName","Gender","Kudos"}; 
string[] enteredItems = {"Age", "LastName"}; 

Chcę sprawdzić enteredItems tablica zawiera tylko elementy znajdujące się w tablicy allPossible. Chcę to zrobić z LINQ.

Szukałem

allPossible.Any(el => enteredItems .Contains(el)); 

i

allPossible.Intersect(enteredItems).Any(); 

Zamiast tego pętli thru enteredItems i używać Array.IndexOf(allPossible, x) == -1 return false.

Górna próbka danych powróciłaby zwróci true ... Jednak jeśli tylko 1 element w tablicy wszedłItems nie jest w tablicy allPossible, to pojawi się fałsz. to znaczy.

string[] allPossible = {"ID","Age","FirstName","LastName","Gender","Kudos"}; 
string[] enteredItems = {"Age", "Geeky"}; 

będą fałszywe, ponieważ jeden element array 'enteredItems' nie istnieje w 'allPossible' elementu.

W tym celu musi istnieć zapytanie LINQ.

Odpowiedz

16

Zastosowanie Enumerable.Except

bool allInEntered = !enteredItems.Except(allPossible).Any(); 
+2

Wow, to słodki jeden liner. – crush

Powiązane problemy