我目前正在编写一种编程语言,而我的朋友要求我将其转换为控制台应用程序,到目前为止它还没有顺利进行
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;
的帖子一直给我错误
当我运行它上面的前3行时,这是我在控制台str Hello
中键入的一个示例,它会打印Name:str Value:Hello
但是它会停止程序并显示我的错误
输入字符串的格式不正确。
我不熟悉这个错误,但是如果你曾经在Lua中编程过,这就是我想要完成的事情
elseif line:match("^int") then
local n, v = line:match("^int (.+) = (%d+)")
vars[n] = v
我在C#中的数组总是有问题,所以如果你能告诉我它有什么不对,那对我很有帮助,提前谢谢。
答案 0 :(得分:5)
听起来你实际上想要一个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);
}
答案 1 :(得分:1)
相反,您可以拥有如下所示的HashTable
Hashtable hashTable = new Hashtable();
if (input.Contains(string.Empty))
{
hashTable.Add(input.Substring(0, 3), input.Substring(4));
}