2013-09-10 16 views
5

Ho 2 arrayControlla gli elementi dell'array stringa contenere solo gli elementi in un altro array

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

voglio controllare i enteredItems matrice contiene solo elementi che si trovano nella matrice allPossible. Voglio farlo con LINQ.

Ho guardato

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

e

allPossible.Intersect(enteredItems).Any(); 

Invece ho ciclo attraverso le enteredItems e utilizzare Array.IndexOf(allPossible, x) == -1 return false.

Esempio di dati restituirà restituirà true ... se solo 1 elemento dell'array enteredItems non è nell'array allPossible poi ci sarà un falso. vale a dire.

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

sarebbe falso perché 1 elemento dell'array i 'enteredItems' non esiste nel 'allPossible' elemento .

Per eseguire questa operazione è necessaria una query LINQ.

risposta

16

Usa Enumerable.Except

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

Wow, questo è un dolce uno di linea. – crush

Problemi correlati