C# 从文本文件读取文本并将其转换为变量

C# 从文本文件读取文本并将其转换为变量,c#,list,variables,streamreader,C#,List,Variables,Streamreader,我试图将值设置为凌乱文本中的不同变量 主菜 名称组;价格;税收;数量;身份证件全名;描述 较大的修改器 名称组;价格;税收;数量;身份证/一些/额外的/东西 Text Omlet;Second Dishes;40,0000;;00027;326ef70c-8d29-4c63-94ce-0580f26f84ab;Omlet with chicken and mushroom sauce;;;;; Onions;Vegetables;4,1000;21;00021;fe5bab77-72cf-4

我试图将值设置为凌乱文本中的不同变量

主菜 名称组;价格;税收;数量;身份证件全名;描述

较大的修改器 名称组;价格;税收;数量;身份证/一些/额外的/东西

Text 

Omlet;Second Dishes;40,0000;;00027;326ef70c-8d29-4c63-94ce-0580f26f84ab;Omlet with chicken and mushroom sauce;;;;;
Onions;Vegetables;4,1000;21;00021;fe5bab77-72cf-474e-acbc-1562c2f6aa37;0/1/1/1/6;;;;
Tomatoes;Vegetables;4,2000;21;00022;180fa908-9428-444e-a1df-5b74a40def64;0/1/1/1/7;;;;
Day Soup;Soup;123,4560;9;10108;19674f89-a44a-423d-ae79-0fc020be8d72;;;;;;
Roast pork with sauce;Second Dishes;0,0500;21;1167;a929bf86-2b89-4af6-baf9-f37317e0d75f;;;;;;
Cucumbers;;0,5500;21;222;8e370b64-b1f8-4665-95ae-88327d877394;-/-/1/0/3;;;;;
Tomatoes with garlic;Vegetables;0,1100;21;00024;52d08882-41c2-4dc3-8c4b-998109b6aedc;-/-/1/0/3;;;;;
Salt;;0,3300;21;00025;39332fab-99e0-4663-a59a-fff0deab958d;-/-/1/0/3;;;;;
较小的修改器 名称价格;税收;数量;身份证/一些/额外的/东西

Text 

Omlet;Second Dishes;40,0000;;00027;326ef70c-8d29-4c63-94ce-0580f26f84ab;Omlet with chicken and mushroom sauce;;;;;
Onions;Vegetables;4,1000;21;00021;fe5bab77-72cf-474e-acbc-1562c2f6aa37;0/1/1/1/6;;;;
Tomatoes;Vegetables;4,2000;21;00022;180fa908-9428-444e-a1df-5b74a40def64;0/1/1/1/7;;;;
Day Soup;Soup;123,4560;9;10108;19674f89-a44a-423d-ae79-0fc020be8d72;;;;;;
Roast pork with sauce;Second Dishes;0,0500;21;1167;a929bf86-2b89-4af6-baf9-f37317e0d75f;;;;;;
Cucumbers;;0,5500;21;222;8e370b64-b1f8-4665-95ae-88327d877394;-/-/1/0/3;;;;;
Tomatoes with garlic;Vegetables;0,1100;21;00024;52d08882-41c2-4dc3-8c4b-998109b6aedc;-/-/1/0/3;;;;;
Salt;;0,3300;21;00025;39332fab-99e0-4663-a59a-fff0deab958d;-/-/1/0/3;;;;;
我创建了一个类

    class Food
    {
        public string Name;
        public string Group;
        public string Price;
        public string TaxPercent;
        public string Number;
        public string ID;
        public string Type;
        public string FullName;
        public string Description;
}
有人能解释一下我是如何把部分分成较小的修饰语和较大的修饰语的吗?我应该创建新类还是可以使用一个? IF语句应该是什么样子

到目前为止我试着做什么

 private void button1_Click(object sender, EventArgs e)
        {
            List<Food> List= new List<Food>();
            using (StreamReader sr = new StreamReader(@"TEST.txt"))
            {
                while (!sr.EndOfStream)
                
                {
                    string str;
                    string[] stringArray;
                    str = sr.ReadLine();

                    strArray = str.Split(';');
                    Food Dish = new Food();
                    Dish.Name = stringArray[0];
                    Dish.Group = stringArray[1];
                    Dish.Price = stringArray[2];
                    Dish.TaxPercent = stringArray[3];

                    List.Add(Dish);

                    textBox1.Text =displayMembers(List); 
    


} 
string displayMembers(List<Food> vegetables)
            {
                foreach (Food s in vegetables)
                {
                    return s.ToString();
                }
                return null;
          


您可以这样做:

public List<Food> getFoods()
    {
        List<Food> foods = new List<Food>();
        using (var fileReader = new StreamReader(@"file.txt"))
        {
            var line = fileReader.ReadLine();
            while (line != null)
            {
                string[] data = s.Split(';');
                line = fileReader.ReadLine();
                Food food = new Food
                {
                    Name = data[0];
                    Group = data[1];
                    (...)
            }

            line = fileReader.ReadLine();
        }

        return foods;
    }
public List getFoods()
{
列出食物=新列表();
使用(var fileReader=newstreamreader(@“file.txt”))
{
var line=fileReader.ReadLine();
while(行!=null)
{
字符串[]数据=s.Split(“;”);
line=fileReader.ReadLine();
食物=新食物
{
名称=数据[0];
组=数据[1];
(...)
}
line=fileReader.ReadLine();
}
归还食物;
}

您可以执行以下操作:

public List<Food> getFoods()
    {
        List<Food> foods = new List<Food>();
        using (var fileReader = new StreamReader(@"file.txt"))
        {
            var line = fileReader.ReadLine();
            while (line != null)
            {
                string[] data = s.Split(';');
                line = fileReader.ReadLine();
                Food food = new Food
                {
                    Name = data[0];
                    Group = data[1];
                    (...)
            }

            line = fileReader.ReadLine();
        }

        return foods;
    }
public List getFoods()
{
列出食物=新列表();
使用(var fileReader=newstreamreader(@“file.txt”))
{
var line=fileReader.ReadLine();
while(行!=null)
{
字符串[]数据=s.Split(“;”);
line=fileReader.ReadLine();
食物=新食物
{
名称=数据[0];
组=数据[1];
(...)
}
line=fileReader.ReadLine();
}
归还食物;
}

您能描述一下确切的问题是什么吗?它根本不起作用吗?您有错误吗?还有其他问题吗?“因为此代码没有将信息排序为变量。”你能添加一些没有得到预期结果的输入/结果对的例子吗?首先,我需要有人告诉我我的方法是否正确。它没有给我任何错误,只是不起作用,没有将文本排序为变量。似乎它只是跳过了文本。我不确定,你是否理解这些拆分语句,只要看一看,告诉我你在这里看到的所有问题,给我一些建议或一些我不知道的东西:(@BrootsWaymbUpdated@Fildor完全更新了问题。你能描述一下确切的问题是什么吗?它根本不起作用吗?你有错误吗?还有其他问题吗?“因为此代码没有将信息排序为变量。”你能添加一些没有得到预期结果的输入/结果对的例子吗?首先,我需要有人告诉我我的方法是否正确。它没有给我任何错误,只是不起作用,没有将文本排序为变量。似乎它只是跳过了文本。我不确定,你是否理解这些拆分语句,只要看一看,告诉我你在这里看到的所有问题,给我一些建议或一些我不知道的东西:(@BrootsWaymbUpdated@Fildor完全更新了问题。它有什么帮助?它有什么帮助?