2013-02-27 97 views
5

मैंने कक्षा की संपत्ति के रूप में एक सूची बनाई है, और सूची को परिभाषित करते समय कुंजी/मान जोड़े सेट करना चाहते हैं। मैं मूल रूप से एक संरचना का उपयोग कर रहा था लेकिन महसूस किया कि यह शायद आदर्श समाधान नहीं है इसलिए मैंने इसे एक सूची में बदल दिया। समस्या यह है कि मुझे वाक्यविन्यास के साथ एक त्रुटि मिल रही है।सेटिंग कुंजी/वैल्यू जोड़े

कोई विचार?

private List<KeyValuePair<String,String>> formData = new List<KeyValuePair<String, String>>[] 
    { 
      new KeyValuePair<String, String>("lsd",""), 
      new KeyValuePair<String, String>("charset", "") 
    }; 
+0

एक अनुमान में और त्रुटि को जानने के बिना, यह पहली पंक्ति के अंत में '[]' जोड़ी है (यह पहले keyValuePair के बाद '' '' हो सकता है, यह '' 'होना चाहिए। क्या आप जो त्रुटि प्राप्त कर रहे हैं, क्या आप हमें अपना कोड कॉपी और पेस्ट कर सकते हैं? –

उत्तर

9
शायद

मैं कुछ याद कर रहा हूँ, लेकिन मैं एक शब्दकोश का इस्तेमाल किया है | बजाय
तो सरल ....

Dictionary<string, string>formData = new Dictionary<string, string> 
{ 
    {"lsd", "first"}, 
    {"charset", "second"} 
};  

और फिर इन मायनों में इसका इस्तेमाल करते हैं:

foreach(KeyValuePair<string, string>k in formData) 
{ 
    Console.WriteLine(k.Key); 
    Console.WriteLine(k.Value); 
} 
.... 
if(formData.ContainsKey("lsd")) 
    Console.WriteLine("lsd is already in"); 
....  
string v = formData["lsd"]; 
Console.WriteLine(v); 
+0

मैंने सी # - या प्रोग्राम किया नहीं है - एक साल से अधिक के लिए, इसलिए मुझे याद आया कि क्या जा रहा था। लेकिन निश्चित रूप से एक बेहतर समाधान है। –

0

बदलें तीसरी पंक्ति में एक अल्पविराम के सेमी-कोलन और पहली पंक्ति से वर्ग कोष्ठक हटा दें।

private List<KeyValuePair<String,String>> formData = new List<KeyValuePair<String, String>> 
{ 
     new KeyValuePair<String, String>("lsd",""), 
     new KeyValuePair<String, String>("charset", "") 
}; 

संयोग से, यदि आप इसे किसी शब्दकोश में बदलते हैं तो आपको मूल्यों को आसानी से उनकी कुंजी से देखने की क्षमता मिलती है।

0
private List<KeyValuePair<String,String>> formData = new List<KeyValuePair<String, String>>() 
    { 
      new KeyValuePair<String, String>("lsd",""), 
      new KeyValuePair<String, String>("charset", "") 
    }; 
  1. क्यों [] निर्माता के बाद से [] निकालना चाहते हैं?
  2. संग्रह प्रारंभकर्ता के भीतर आइटम को अल्पविराम: , का उपयोग करके अलग किया जाना है।
0

कोशिश

  private List<KeyValuePair<String, String>> formData = new List<KeyValuePair<String, String>> 
    { 
      new KeyValuePair<String, String>("lsd",""), 
      new KeyValuePair<String, String>("charset", "") 
    }; 
2

इस प्रयास करें:

private List<KeyValuePair<String,String>> formData = new List<KeyValuePair<String, String>> 
{ 
    new KeyValuePair<String, String>("lsd",""), 
    new KeyValuePair<String, String>("charset", "") 
}; 

आप अपनी परिभाषा में एक अतिरिक्त [] था। आप एक सरणी नहीं बना रहे हैं, इसलिए आपको इसकी आवश्यकता नहीं है। साथ ही कुछ मानों के साथ सूची प्रारंभ करते समय, मान को अल्पविराम (,) से अलग किया जाना चाहिए।

मेरी राय में, एक बेहतर दृष्टिकोण का उपयोग किया जाएगा Tuple class:

pirvate List<Tuple<string, string>> formData = new List<Tuple<string, string>>() 
{ 
    new Tuple<string, string>("lsd",""), 
    new Tuple<string, string>("charset", "") 
};