2013-03-20 9 views
7

मेरे पास शेयरपॉइंट आइटम की एक सूची है: प्रत्येक आइटम में शीर्षक, विवरण और एक प्रकार होता है। मैंने इसे सफलतापूर्वक पुनर्प्राप्त किया, मैंने इसे result कहा। मैं पहले यह जांचना चाहता हूं कि result में कोई आइटम है जो ए के बाद बी, सी आदि से शुरू होता है। मुझे प्रत्येक वर्णमाला चरित्र के लिए ऐसा करना होगा और फिर यदि मुझे इस चरित्र से शुरू होने वाला शब्द मिल जाए तो मुझे प्रदर्शित करना होगा बोल्ड में चरित्र।यह कैसे जांचें कि कोई शब्द किसी दिए गए चरित्र से शुरू होता है या नहीं?

मैं शुरू में इस समारोह का उपयोग कर वर्ण प्रदर्शित:

private string generateHeaderScripts(char currentChar) 
{ 
    string headerScriptHtml = "$(document).ready(function() {" + 
     "$(\"#myTable" + currentChar.ToString() + "\") " + 
     ".tablesorter({widthFixed: true, widgets: ['zebra']})" + 
     ".tablesorterPager({container: $(\"#pager" + currentChar.ToString() +"\")}); " + 
     "});"; 
    return headerScriptHtml; 
} 

मैं अगर एक शब्द भी किसी दिए गए चरित्र के साथ शुरू होता जाँच कैसे करूँ?

+0

शायद मैं आपके प्रश्न को समझ नहीं पा रहा हूं, लेकिन यदि आप इसे किसी स्ट्रिंग पर पार्स कर सकते हैं तो आप '.StartsWith' –

उत्तर

13

एक मूल्य की जाँच करने के लिए, उपयोग करें:

string word = "Aword"; 
    if (word.StartsWith("A")) 
    { 
     // do something 
    } 

आप ए, बी के साथ एक सूची पारित करने के लिए कर सकते हैं एक छोटे से विस्तार विधि, और सी

public static bool StartsWithAny(this string source, IEnumerable<string> strings) 
    { 
     foreach (var valueToCheck in strings) 
     { 
      if (source.StartsWith(valueToCheck)) 
      { 
       return true; 
      } 
     } 

     return false; 
    } 

    if (word.StartsWithAny(new List<string>() { "A", "B", "C" })) 
    { 
     // do something 
    } 

और एक बोनस के रूप में, यदि आप जानना चाहते हैं कि आपके तार के साथ, शुरू होता है एक सूची से, और

public static bool StartsWithAny(this string source, IEnumerable<string> strings, out string startsWithValue) 
    { 
     startsWithValue = null; 

     foreach (var valueToCheck in strings) 
     { 
      if (source.StartsWith(valueToCheck)) 
      { 
       startsWithValue = valueToCheck; 
       return true; 
      } 
     } 

     return false; 
    } 

उपयोग::

string word = "AWord"; 
    string startsWithValue; 
    if (word.StartsWithAny(new List<string>() { "a", "b", "c" }, out startsWithValue)) 
    { 
     switch (startsWithValue) 
     { 
      case "A": 
       // Do Something 
       break; 

      // etc. 
     } 
    } 
+0

का उपयोग कर सकते हैं, क्या यह किसी ऐसे चीज़ के लिए एक एक्सटेंशन विधि लिखने के लिए अधिक नहीं है जिसे पहले से ही आसानी से' नया [] {'ए', 'बी', 'सी'}। इसमें शामिल हैं (0 [0]) ' – Magnus

+0

मैं" स्टार्ट्सविथएनी "की पठनीयता को प्राथमिकता देता हूं, लेकिन यह भी पुन: उपयोग की जाने वाली राशि पर निर्भर करता है। –

+0

धन्यवाद! यह - 'आउट' पैरामीटर के साथ विस्तार विधि, वही है जो मैं अपनी आवश्यकताओं के लिए लिखने की सोच रहा था, जो रूट यूआरएल सेगमेंट की सूची के विरुद्ध आने वाले रूट सेगमेंट की जांच करना है। एक जादू की तरह काम करता है! – Shiva

0

एक स्ट्रिंग में पहले वर्ण लौटने के लिए, का उपयोग करें:

Word.Substring(0,1) //where word is a string 
1

गुण आप जाँच कर रहे हैं मान लिया जाये कि स्ट्रिंग प्रकार के होते हैं, तो आप String.StartsWith() विधि का उपयोग कर सकते हैं .. उदाहरण के लिए: -

if(item.Title.StartsWith("A")) 
{ 
    //do whatever 
} 

रिंस और दोहराने

0

आप को लागू कर सकता है नियमित Expr कि मूल्य के आधार पर कुछ करना सार। वे काफी शक्तिशाली हैं, लेकिन जब आप अपनी अभिव्यक्ति तैयार करते हैं तो यह वास्तव में आपके लिए एक कार्य पूरा करेगा।

उदाहरण के लिए संख्या, अक्षर, शब्द, आदि ढूंढना यह काफी अभिव्यक्तिपूर्ण और लचीला है।

इस तरह के एक अभिव्यक्ति का एक उदाहरण होगा::

वे उन पर एक वास्तव में महान ट्यूटोरियल here है

string input = "Some additional string to compare against."; 
Match match = Regex.Match(input, @"\ba\w*\b", RegexOptions.IgnoreCase); 

कि सभी वस्तुओं है कि एक "एक" कोई बात नहीं के साथ शुरू मिलेगा मामला। आप उन्हें लैम्ब्डा और लिंक का उपयोग भी बेहतर बनाने के लिए करते हैं।

उम्मीद है कि मदद करता है।

0

नीचे दिए गए प्रयासों का प्रयास करें। आप या तो StartsWith या सबस्ट्रिंग 0,1 (पहले अक्षर) कर सकते हैं

if (Word.Substring(0,1) == "A") { 
    } 
0

आप एक विशिष्ट चरित्र के लिए जाँच करने के लिए कुछ इस तरह कर सकता है।

public bool StartsWith(string value, string currentChar) { 
    return value.StartsWith(currentChar, true, null); 
} 

स्टार्ट्स विथ विधि के मामले को अनदेखा करने का विकल्प होता है। तीसरा पैरामीटर संस्कृति को सेट करना है। अगर शून्य, यह सिर्फ वर्तमान संस्कृति का उपयोग करता है। इस विधि के साथ, आप अपने शब्दों के माध्यम से लूप कर सकते हैं, जांच को चला सकते हैं और आवश्यकतानुसार पहले अक्षर को हाइलाइट करने के लिए शब्द को संसाधित कर सकते हैं।

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