2013-09-10 9 views
5

में तत्व होते हैं मैं 2 सरणियोंचेक स्ट्रिंग सरणी तत्वों केवल एक और सरणी

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

है मैं सरणी enteredItems केवल सरणी allPossible में पाया तत्व शामिल हैं जाँच करना चाहते हैं। मैं LINQ के साथ ऐसा करना चाहता हूँ।

मैं

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

और

allPossible.Intersect(enteredItems).Any(); 

इसके बजाय मैं पाश देखा enteredItems के माध्यम से और Array.IndexOf(allPossible, x) == -1 return false का उपयोग किया है।

शीर्ष डेटा नमूना वापस आ जाएगा ... हालांकि अगर एंटीम्स एरेम्स में केवल 1 तत्व सभी संभावित सरणी में नहीं है तो कोई झूठा होगा। अर्थात।

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

गलत हो क्योंकि 'enteredItems' श्रेणी में 1 तत्व 'allPossible' तत्व में मौजूद नहीं है जाएगा।

ऐसा करने के लिए एक LINQ क्वेरी होना चाहिए।

उत्तर

16

उपयोग Enumerable.Except

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

वाह, यह एक मिठाई एक लाइनर है। – crush

संबंधित मुद्दे