आपके पैटर्न के आधार पर एक सुधार होगा जिसमें कॉन्टेंस के बजाय स्टार्टस्विथ का उपयोग करना होगा। प्रारंभ में प्रत्येक स्ट्रिंग के माध्यम से केवल इटर्स्ट की आवश्यकता होती है, जब तक कि वह हर वर्ण स्थिति में खोज को फिर से शुरू करने के बजाय पहला बेमेल पाता है जब वह एक पाता है।
इसके अलावा, आपके पैटर्न के आधार पर, ऐसा लगता है कि आप myString के लिए पथ के पहले भाग को निकालने में सक्षम हो सकते हैं, फिर तुलना को उल्टा कर सकते हैं - आसपास के अन्य तरीके के बजाय स्ट्रिंग्स की सूची में myString के शुरुआती पथ की तलाश कर रहे हैं।
string[] pathComponents = myString.Split( Path.DirectorySeparatorChar );
string startPath = pathComponents[0] + Path.DirectorySeparatorChar;
return listOfStrings.Contains( startPath );
संपादित करें : यह भी तेजी से HashSet विचार @Marc Gravell का उल्लेख है जब से तुम को बदल सकता है का उपयोग करते हुए किया जाएगा Contains
करने के लिएContainsKey
और देखने हे (एन) के हे (1) के बजाय होगा। आपको यह सुनिश्चित करना होगा कि रास्ते बिल्कुल मेल खाते हों। ध्यान दें कि यह @Marc Gravell का सामान्य समाधान नहीं है, लेकिन आपके उदाहरणों के अनुरूप है।
C # उदाहरण के लिए क्षमा करें। वीबी में अनुवाद करने के लिए मेरे पास पर्याप्त कॉफी नहीं थी।