我有一個包含列標題和信息的表。C#.NET生成一個字符串數組,其索引是表中的字符串值
我想創建一個數組它的索引將是Title,並且該索引中數組的實際值是同一行中的Info。
所以,如果我有3行這樣的:
Title Info
ABC Hi
DEF Sup
GHI Hello
我想問爲StringArray["ABC"]
,這將返回「嗨」。
我該怎麼做?
感謝蓋伊
我有一個包含列標題和信息的表。C#.NET生成一個字符串數組,其索引是表中的字符串值
我想創建一個數組它的索引將是Title,並且該索引中數組的實際值是同一行中的Info。
所以,如果我有3行這樣的:
Title Info
ABC Hi
DEF Sup
GHI Hello
我想問爲StringArray["ABC"]
,這將返回「嗨」。
我該怎麼做?
感謝蓋伊
你想要一個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"]);
數組只能用整數進行索引。您將不得不使用Dictionary<string, string>
或其他實現IDictionary<string, string>
的類型,或者您可以使用字符串索引器實現自己的類型。
請參考字典對於
你可以做這樣
Dictionary<string, string> Book = new Dictionary<string, string>();
Book.Add("ABC","Hi");
Book.Add("DEF","Sup");
Book.Add("GHI","Hello");
等等等等。
所以後來當你說
Book["ABC"]
它將返回Hi
你應該用字典來實現它。
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";
}
@ScottM。 - 他可能不知道字典類的存在。而不是好鬥,只是說「看看詞典課」可能會更有好處。 – 2012-04-17 15:20:42
您的索引是否保證是唯一的?如果他們不是那麼字典不會爲你工作。 – 2012-04-17 17:56:36