1

我有一个表包含列标题和信息。

我想创建一个数组,它的索引将是标题,并且该索引中数组的实际值是同一行中的信息。

因此,如果我有 3 行这样的:

Title      Info

ABC        Hi

DEF        Sup

GHI        Hello

我想问StringArray["ABC"],这将返回“嗨”。

我怎样才能做到这一点?

谢了,兄弟们

4

4 回答 4

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"]);
于 2012-04-17T15:15:35.430 回答
1

数组只能用整数索引。您必须使用Dictionary<string, string>, 或其他实现 的类型IDictionary<string, string>,或者您可以使用字符串索引器实现您自己的类型。

于 2012-04-17T15:16:29.240 回答
1

请参阅字典

你可以这样做

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

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

等等等等。

那么当你说

Book["ABC"]它会回来Hi

于 2012-04-17T15:17:29.287 回答
1

您应该使用字典来实现它。

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";
}
于 2012-04-17T15:18:49.860 回答