我有一个表包含列标题和信息。
我想创建一个数组,它的索引将是标题,并且该索引中数组的实际值是同一行中的信息。
因此,如果我有 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"];
你应该小心,如果你使用不存在的密钥会抛出异常
您可以使用 TryGetValue 来避免此异常
string info;
if(!table.TryGetValue("ABC", out info))
{
info = "default value if required";
}