2009-10-29 5 views
7

मैं यह पता लगाने की कोशिश कर रहा हूं कि स्ट्रिंग मान EndsWith कोई अन्य स्ट्रिंग है या नहीं। यह 'अन्य स्ट्रिंग' संग्रह से मूल्य हैं। मैं तारों के लिए इसे विस्तार विधि के रूप में करने की कोशिश कर रहा हूं।मैं यह निर्धारित करने के लिए लिंक का उपयोग कैसे कर सकता हूं कि यह स्ट्रिंग समाप्त हो जाती है (एक संग्रह से)?

उदाहरण के लिए।

var collection = string[] { "ny", "er", "ty" }; 
"Johnny".EndsWith(collection); // returns true. 
"Fred".EndsWith(collection); // returns false. 

उत्तर

12
var collection = new string[] { "ny", "er", "ty" }; 

var doesEnd = collection.Any("Johnny".EndsWith); 
var doesNotEnd = collection.Any("Fred".EndsWith); 

आप Any

public static bool EndsWith(this string value, params string[] values) 
{ 
    return values.Any(value.EndsWith); 
} 

var isValid = "Johnny".EndsWith("ny", "er", "ty"); 
+0

_ANY_ .. आह !!! कमाल :) मुझे लिंक पसंद है। धन्यवाद दोस्त :) –

0

के उपयोग को छिपाने के लिए एक स्ट्रिंग एक्सटेंशन बना सकते हैं .NET फ़्रेमवर्क करने के लिए बनाया कुछ भी नहीं है लेकिन यहाँ एक विस्तार विधि है कि चाल करना होगा है :

public static Boolean EndsWith(this String source, IEnumerable<String> suffixes) 
{ 
    if (String.IsNullOrEmpty(source)) return false; 
    if (suffixes == null) return false; 

    foreach (String suffix in suffixes) 
     if (source.EndsWith(suffix)) 
      return true; 

    return false; 
} 
+0

चीयर्स एंड्रयू। हाँ, यह (अधिक या कम) है जो मुझे पहले से मिला है। मैं यह देखना चाहता था कि यह लिंक के रूप में कैसे करें (इसलिए मैं इसे सीख सकता हूं)। –

+0

स्नैप करें! हाहाहः-) –

0
public static class Ex{ 
public static bool EndsWith(this string item, IEnumerable<string> list){ 
    foreach(string s in list) { 
    if(item.EndsWith(s) return true; 
    } 
    return false; 
} 
}