如何向数组添加值?

我正在开发一种编程语言,我的朋友让我将它转换为控制台应用程序,但是到目前为止进展不顺。

if (input.Contains(""))
{
    string name = input.Substring(0, 3);
    string value = input.Substring(4);
    Console.WriteLine("Name:" + name + " " +  "Value:" + value);
    vars[Convert.ToInt32(name)] = value;
}

我的问题出在vars[Convert.ToInt32(name)] = value;这一行,运行前面的三行代码不会出错。使用控制台输入 str Hello,它会打印 Name:str Value:Hello,但然后它就停止运行并显示以下错误信息:

输入字符串的格式不正确。

我不太熟悉这个错误,但如果你曾经编写过Lua程序,这就是我想要实现的内容:

elseif line:match("^int") then
    local n, v = line:match("^int (.+) = (%d+)")
    vars[n] = v

我一直对C#中的数组有一些问题,如果你能告诉我出了什么错,那就太好了。提前感谢您的帮助。

点赞
用户488397
用户488397

听起来你实际上想要一个 Dictionary 来保存名称和值的键值对。你只能使用 int 来作为数组的索引,因此使用字典允许你使用字符串值。

var inputDictionary = new Dictionary<string,string>();
if (input.Contains(""))
{
    string name = input.Substring(0, 3);
    string value = input.Substring(4);
    Console.WriteLine("Name:" + name + " " +  "Value:" + value);
    inputDictionary.Add(name, value);
}
2016-01-25 04:36:01
用户4850239
用户4850239

相反,您可以像下面这样使用 HashTable

Hashtable hashTable = new Hashtable();
if (input.Contains(string.Empty))
{
    hashTable.Add(input.Substring(0, 3), input.Substring(4));
}
2016-01-25 04:47:08