2011-02-13 14 views
12

मैं सी # के लिए नया हूं, और इस प्रकार इसके बारे में आम आदमी की शर्तों की तलाश में हूं। कुंजी 2 = val2 | | ... | keyN = Valnसी # विभाजन, एक सरणी में वापसी कुंजी/मूल्य जोड़े

एक डेटाबेस सरणी जहां आपने सही अनुमान लगाया में

, कुंजी 1 रिटर्न VAL1, कुंजी 2 रिटर्न

कुंजी 1 = VAL1: मूलतः, मुझे क्या करना चाहते हैं बारी है val2, आदि। मुझे पता है कि मैं विभाजन का उपयोग कर एक स्ट्रिंग वापस कर सकता हूं, लेकिन उस बिंदु से, मुझे नुकसान हो रहा है। किसी भी तरह की सहायता का स्वागत किया जाएगा! मुझे उम्मीद है कि मैंने अपना इरादा स्पष्ट कर दिया है, लेकिन यदि आपके कोई प्रश्न हैं, तो पूछने में संकोच नहीं करें!

+1

@ मार्क खरीदारों: मुझे लगता है कि उनका मतलब एक शब्दकोश की तरह "सहयोगी सरणी" था। – jason

उत्तर

50
string s = "key1=val1|key2=val2|keyN=valN"; 
var dict = s.Split('|') 
      .Select(x => x.Split('=')) 
      .ToDictionary(x => x[0], x => x[1]); 

अब dict वांछित कुंजी/मान जोड़े के साथ एक Dictionary<string, string> है।

+1

यह मुझे बेहद मदद करता है। जैसा कि मैंने कहा, मैं सी # के लिए नया हूं, और अपने पहले कार्यक्रम पर एक प्रोग्राम के लिए ऐड-ऑन (अधिक या कम) के रूप में काम कर रहा हूं जिसका मैं पहले से उपयोग कर रहा हूं। धन्यवाद! – Josh

+0

यह बंद करने का एक शानदार उपयोग है, अच्छा! – matao

+0

यह एक है जिसे मैं निश्चित रूप से उपयोग कर रहा हूं! अच्छी तरह से किया! – Andreas

8
Dictionary<string,string> results = new Dictionary<string,string>(); 
foreach(string kvp in source.split('|')) 
{ 
    results.Add(kvp.split('=')[0], kvp.split('=')[1]); 
} 

शायद इसे करने का एक लिंक तरीका।

3
string s = "key1=val1|key2=val2|keyN=valN"; 
var dict = s.Split('|') 
.Select(x => x.Split('=')) 
.Where(x => x.Length > 1 && !String.IsNullOrEmpty(x[0].Trim()) 
    && !String.IsNullOrEmpty(x[1].Trim())) 
.ToDictionary(x => x[0].Trim(), x => x[1].Trim()); 
संबंधित मुद्दे