我想創建一個新的列表與關鍵的一個新的列表和值生成與關鍵
List<object> r = new List<object>();
r.Add("apple");
r.Add("John");
return r;
當u Addwatch的R,你會看到
[1] = apple
[2] = John
問題:如何使[1]和[2]是新密鑰?當我追加r時,我想看到[1]被Name取代。如下所示:
Name = apple
TeacherName = John
我想創建一個新的列表與關鍵的一個新的列表和值生成與關鍵
List<object> r = new List<object>();
r.Add("apple");
r.Add("John");
return r;
當u Addwatch的R,你會看到
[1] = apple
[2] = John
問題:如何使[1]和[2]是新密鑰?當我追加r時,我想看到[1]被Name取代。如下所示:
Name = apple
TeacherName = John
你的意思是你想使用類似Dictionary<TKey, TValue>
例如:
Dictionary<string, string> d = new Dictionary<string, string>();
d.Add("Name", "Apple");
d.Add("Teacher", "John");
或你想要的目的是更強類型? 在這種情況下,你必須使用你的一個類/結構
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;
這種類型的數據結構使用列表是完全不正確的。您需要使用使用Dictionary,NameValueCollection或類似的類型。
你將需要使用一個詞典來做到這一點。不是列表。 見http://msdn.microsoft.com/en-us/library/xfhwa508.aspx
你的問題不明確,很難理解。
你的意思是說你想要鍵而不是索引?像名稱而不是1
那麼作爲Aliza和Bumble Bee說你需要使用字典,而不是一個列表。
這裏有一個小例子
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);
我希望我不要讓這裏的任何語法錯誤......
Dictionary <string, int> r = new Dictionary<string,int>();
r.add("apple",1);
r.add("John",2)
console.WriteLine(r["apple"]);//returns value 1
您可以將您的列表:
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);
}
輸出:
{ Name = apple, TeacherName = John }
{ Name = orange, TeacherName = Bob }
然後轉化爲詞典:
var result = dict.ToDictionary(d => d.Name, d => d.TeacherName);
你提的問題是很難理解的 - 嘗試清理你想說什麼。這聽起來像你想要一個字典,它允許你使用一個鍵/值對 – Prescott