2011-06-26 8 views
5

मैं कुंजी के साथ एक नई सूची बनाने चाहते हैं एक नई सूची उत्पन्न और महत्व देतासाथ कुंजी

List<object> r = new List<object>(); 
r.Add("apple"); 
r.Add("John"); 
return r; 

जब यू आर Addwatch, आप

[1] = apple 
[2] = John 

प्रश्न देखेंगे: मैं कैसे कर सकता हूँ [1] और [2] नई कुंजी होने के लिए? जब मैं आर को जोड़ता हूं, तो मैं देखना चाहता हूं [1] नाम से बदल दिया गया है। नीचे जैसा कुछ है:

Name = apple 
TeacherName = John 
+2

आपका प्रश्न को समझने के लिए बहुत मुश्किल है - ऊपर समाशोधन आप क्या कहते हैं की कोशिश कर रहे प्रयास करें। ऐसा लगता है कि आप एक शब्दकोश चाहते हैं, जो आपको एक कुंजी/मूल्य जोड़ी का उपयोग करने की अनुमति देता है – Prescott

उत्तर

10

तुम्हारा मतलब तुम्हारी तरह Dictionary<TKey, TValue>

उदाहरण कुछ प्रयोग करना चाहते हैं:

Dictionary<string, string> d = new Dictionary<string, string>(); 
d.Add("Name", "Apple"); 
d.Add("Teacher", "John"); 

या आप और अधिक दृढ़ता से लिखे गए एक वस्तु चाहते हैं? इस मामले आप अपने एक वर्ग/struct

class MyObject 
{ 
public string Name {get; set;} 
public string Teacher {get; set;} 
} 

फिर

var list = new List<MyObject>(); 
list.Add(new MyObject { Name = "Apple", Teacher = "John" }); 
list.Add(new MyObject { Name = "Banana", Teacher = "Setphan" }); 

का उपयोग करना पड़ में तो आप कर सकते हैं यह सब

var item = list[0]; 
var name = item.Name; 
var teacher = item.Teacher; 
3

इस प्रकार की डेटा संरचना के लिए सूची का उपयोग करना पूरी तरह गलत है। आपको Dictionary, NameValueCollection या इसी प्रकार के उपयोग का उपयोग करने की आवश्यकता है।

0

आपका प्रश्न नहीं स्पष्ट और समझने में कठिन है।

क्या आप कहने का मतलब है कि आप इंडेक्स की बजाय चाबियाँ चाहते हैं? 1

के बजाय नाम की तरह अच्छी तरह से Aliza और Bumble Bee ने कहा है कि आपको किसी सूची के बजाय शब्दकोश का उपयोग करने की आवश्यकता है।

List<object> r = new List<object>(); 
r.Add("apple"); 
r.Add("John"); 
r.Add("orange"); 
r.Add("Bob"); 

var dict = r.Where((o, i) => i % 2 == 0) 
    .Zip(r.Where((o, i) => i % 2 != 0), (a, b) => new { Name = a.ToString(), TeacherName = b.ToString() }); 

foreach (var item in dict) 
{ 
    Console.WriteLine(item); 
} 

:

यहाँ एक छोटा सा उदाहरण

IDictionary<string, Interval> store = new Dictionary<string, string>(); 

store.Add("Name","apple"); 
store.Add("TeacherName ", John); 

foreach(KeyValuePair<string, string> e in store) 
    Console.WriteLine("{0} => {1}", e.Key, e.Value); 
1

मुझे आशा है कि मुझे नहीं यहाँ किसी भी वाक्य रचना गलती करते हैं ...

Dictionary <string, int> r = new Dictionary<string,int>(); 
r.add("apple",1); 
r.add("John",2) 
console.WriteLine(r["apple"]);//returns value 1 
2

आप अपनी सूची बदल सकता है आउटपुट:

{ Name = apple, TeacherName = John } 
{ Name = orange, TeacherName = Bob } 

और फिर शब्दकोश में परिणत:

var result = dict.ToDictionary(d => d.Name, d => d.TeacherName); 
संबंधित मुद्दे