2012-04-17 43 views
1

我有一個包含列標題和信息的表。C#.NET生成一個字符串數組,其索引是表中的字符串值

我想創建一個數組它的索引將是Title,並且該索引中數組的實際值是同一行中的Info。

所以,如果我有3行這樣的:

Title  Info 

ABC  Hi 

DEF  Sup 

GHI  Hello 

我想問爲StringArray["ABC"],這將返回「嗨」。

我該怎麼做?

感謝蓋伊

+0

@ScottM。 - 他可能不知道字典類的存在。而不是好鬥,只是說「看看詞典課」可能會更有好處。 – 2012-04-17 15:20:42

+0

您的索引是否保證是唯一的?如果他們不是那麼字典不會爲你工作。 – 2012-04-17 17:56:36

回答

5

你想要一個Dictionary<String, String>,而不是一個字符串數組。

var myStrings = new Dictionary<String, String>(); 
myStrings.Add("ABC", "Hi"); 
myStrings.Add("DEF", "Sup"); 
myStrings.Add("GHI", "Hello"); 

Console.WriteLine(myStrings["ABC"]); 
1

數組只能用整數進行索引。您將不得不使用Dictionary<string, string>或其他實現IDictionary<string, string>的類型,或者您可以使用字符串索引器實現自己的類型。

1

請參考字典對於

你可以做這樣

Dictionary<string, string> Book = new Dictionary<string, string>(); 

Book.Add("ABC","Hi"); 
Book.Add("DEF","Sup"); 
Book.Add("GHI","Hello"); 

等等等等。

所以後來當你說

Book["ABC"]它將返回Hi

1

你應該用字典來實現它。

var table = new Dictionary<string,string>(
{"ABC", "Hi"}, 
{"DEF", "Sup"}, 
{"GHI", "Hello"} 
); 

現在你可以使用它

var info = table["ABC"]; 

,如果你使用你應該小心的將引發異常unexisted關鍵

可以使用TryGetValue避免這種例外

string info; 

if(!table.TryGetValue("ABC", out info)) 
{ 
    info = "default value if required"; 
} 
相關問題