如何使用字符串索引声明字符串数组?

时间:2014-05-07 10:06:42

标签: c# arrays string

在我的代码中我声明如下:

public string[] s ;

我需要像这样使用这个字符串:

s["Matthew"]="Has a dog";
s["John"]="Has a car";

当我使用s [" Matthew"]时会出现错误,并显示"无法隐式转换' string' to' int'" 。 如何使字符串数组具有字符串索引? 如果我在php中写这个有用:

array() a;
a["Mathew"]="Is a boy";

我还需要它在asp.net中工作!

3 个答案:

答案 0 :(得分:11)

public Dictionary<string, string> s;

MSDN documentation

答案 1 :(得分:3)

在C#中,您不能使用字符串作为数组索引来访问数组元素。 出于这个原因,你有一个强制转换错误,因为根据数组的定义,数组的索引是一个整数。

为什么不使用像dictionary这样的数据结构?

var dict = new Dictionary<string,string>();

dict.Add("John","I am John");

//print the value stored in dictionary using the string key
Console.WriteLine(dict["John"]);

答案 2 :(得分:0)

数组适用于索引和索引是数字,但你传递的字符串是你收到错误的原因,@ Christian建议你使用Dictionary

    Dictionary<string, string> dict = new Dictionary<string, string>()
    {
            {"key1", "value1"},
            {"key2", "value2"},
            {"key3", "value3"}
    };

    // retrieve values:
    foreach (KeyValuePair<string, string> kvp in dict)
    {
        string key = kvp.Key;
        string val = kvp.Value;
        // do something
    }