我试图找到一种从文件创建类实例的方法,并且还使用该文件作为为类属性赋予其值的方法。我可以手动输入所有信息,但最好通过一个文件来完成,这样我就可以改变文件,这将改变我的程序。
到目前为止,这是代码...当我运行它时,它说
class Program
{
class dish
{
public class starters { public string starter; public string alteration; }
static void Main(string[] args)
{
List<dish.starters> starter = new List<dish.starters>();
using (StreamReader reader = File.OpenText(@"D:\Visual Studio\Projects\Bella Italia\Food\Starters.txt"))
{
IDictionary<string, dish.starters> value = new Dictionary<string, dish.starters>();
while (!reader.EndOfStream)
{
value[reader.ReadLine()] = new dish.starters();
value[reader.ReadLine()].starter = reader.ReadLine();
}
foreach(var x in value.Values)
{
Console.WriteLine(x.starter);
}
}
Console.ReadLine();
}
}
}
当我尝试运行它时,它说
异常未处理 System.Collections.Generic.KeyNotFoundException:'字典中没有给定的键。'
答案 0 :(得分:1)
你在这里连续读两行。第二行可能没有字典中的相关条目(并且您也不希望复制):
value[reader.ReadLine() /*one*/] = new dish.starters();
value[reader.ReadLine() /*two*/].starter = reader.ReadLine();
将密钥存储在变量中并重用:
string key = reader.ReadLine();
value[key] = new dish.starters();
value[key].starter = reader.ReadLine();
或者创建对象并稍后分配:
string key = reader.ReadLine();
var starters = new dish.starters();
starters.starter = reader.ReadLine()
value[key] = starters;