C# 设置对象数组中每个项的属性(C,Regex.Split())

C# 设置对象数组中每个项的属性(C,Regex.Split()),c#,arrays,regex,object,split,C#,Arrays,Regex,Object,Split,我试图使用Regex.Split方法将对象数组中每个项的属性设置为Split方法的结果。考虑以下类:吸气剂和定位器: public class PuffAndStuff { private String puff = ""; public string puff { get => puff; set => puff = value; } } 交易是,我想用Regex.Split方法分离文本文件中的文本。考虑下面的程序: static

我试图使用Regex.Split方法将对象数组中每个项的属性设置为Split方法的结果。考虑以下类:吸气剂和定位器:

public class PuffAndStuff
    {
        private String puff = "";
        public string puff { get => puff; set => puff = value; }
    }
交易是,我想用Regex.Split方法分离文本文件中的文本。考虑下面的程序:

static void Main()
        {
            Regex regex = new Regex(@"Puff[0-9]\r\n");

            PuffAndStuff[] subPuff = new PuffAndStuff[] { new PuffAndStuff { puff = "" } };


            StreamReader reader = File.OpenText("D:\\SampleText.txt");

            string check = reader.ReadToEnd();

            string[] arrayCheck = Regex.Split(check, @"Puff[0-9]\r\n");

            subPuff = Regex.Split(check, @"Puff[0-9]\r\n");

            subPuff[0].puff = arrayCheck[1] + arrayCheck[2];

            Console.WriteLine("Segment 1:\r\n" + subPuff[0].puff);


            Console.WriteLine("Segment 2:\r\n" + arrayCheck[3] + arrayCheck[4]);


        }

我曾想过,以不同的方式将文本从文件中分离出来可能会更好,使用通用动态列表而不是对象数组,但我也在尝试想出最快的方法,使对象列表/字典/数组尽可能静态。不过,也许这不是一种切实可行的方法。我的一个问题是subPuff对象数组不接受Regex.Split字符串。有没有人对我如何使这项工作,或者如何使这项工作做得更好提出建议?

正则表达式适合我。检查文本文件中是否有隐藏字符,如行尾的空格。不确定您到底想要什么,但我去掉了其中一个数组,因为您用一个元素定义了它,然后尝试推入.Split的结果。它不会自行调整大小,但会显示一个列表。您还尝试将字符串放入PuffAndStuff对象中。那不行。不管怎样,也许我的代码中有些东西会有所帮助

还记得那个程序员吗?他遇到了一个问题,因为他必须处理一些文本。他以为我会用正则表达式!然后他有两个问题-

public class PuffAndStuff
        {
            private String puff = "";
            //Naming viloation - changed puff to Puff
            public string Puff { get => puff; set => Puff = value; }
        }

 private void OPCode()
        {
            StreamReader reader = File.OpenText(@"D:\\SampleText.txt");
            string check = reader.ReadToEnd();
            List<PuffAndStuff> lstPuff = new List<PuffAndStuff>();
            string[] arrayCheck = Regex.Split(check, @"Puff[0-9]\r\n");
            foreach(string s in arrayCheck)
            {
                lstPuff.Add(new PuffAndStuff { Puff = s });
            }
            lstPuff[0].Puff = arrayCheck[1] + arrayCheck[2];
            Console.WriteLine("Segment 1:\r\n" + lstPuff[0].Puff);
            Console.WriteLine("Segment 2:\r\n" + arrayCheck[3] + arrayCheck[4]);
        }

现在还不清楚你想在这里实现什么。不管您目前有什么解决方案,您能与我们分享您最终想要的吗?我尝试的是将一个文件分成不同的部分,并将它们存储为对象。我希望这样做,以便可以检查每个对象是否缺少文本或数据。让我们说这是我即将进行的一个项目的一部分。我希望能够列出缺少不同段的对象列表,这样就不必滚动文本文件来查看丢失的内容。我担心您会引入类似for的循环作为解决方案,只是希望拆分。但是,嘿,我们不能拥有一切,对吗?我也想过把它改成一个列表——我只是在你发布答案之前这么做的,我非常感谢。非常感谢