C# 从文本文件创建和存储类对象的值
我试图找到一种从文件中创建类实例的方法,并将该文件用作一种为类属性赋予值的方法。我可以手动输入所有信息,但最好是通过一个文件,这样我就可以更改文件,这将为我更改程序 这是到目前为止的代码。。。当我运行它时,它会说C# 从文本文件创建和存储类对象的值,c#,text-files,instances,C#,Text Files,Instances,我试图找到一种从文件中创建类实例的方法,并将该文件用作一种为类属性赋予值的方法。我可以手动输入所有信息,但最好是通过一个文件,这样我就可以更改文件,这将为我更改程序 这是到目前为止的代码。。。当我运行它时,它会说 class Program { class dish { public class starters { public string starter; public string alteration; } static void Main(string[
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();
}
}
类程序
{
班菜
{
公共类启动器{公共字符串启动器;公共字符串转换;}
静态void Main(字符串[]参数)
{
List starter=新列表();
使用(StreamReader reader=File.OpenText(@“D:\Visual Studio\Projects\Bella Italia\Food\Starters.txt”))
{
IDictionary值=新字典();
而(!reader.EndOfStream)
{
value[reader.ReadLine()]=新的dish.starters();
值[reader.ReadLine()].starter=reader.ReadLine();
}
foreach(var x在value.Values中)
{
控制台。写入线(x.启动器);
}
}
Console.ReadLine();
}
}
}
当我试着运行它时,它说
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:“字典中不存在给定的键。”您在这里连续阅读了两行。第二行可能在字典中没有关联的条目(您也不希望重复该条目): 将密钥存储在变量中,并重复使用:
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;
@TimSchmelter是的,这样的措辞会更好。更新。