首页 > 解决方案 > 在 While 循环中为动态变量赋值

问题描述

我正在做一个应用程序,它将读取一个文件并解析该文件执行的所有脚本名称。我希望能够将每个脚本名称卡在不同的变量中,因此一旦程序完成读取第一个文件,他就可以读取第二个文件,该文件将存储在我的第一个动态变量中。因为当我找到要执行的脚本名称时我正在逐行读取文件,所以我将它显示在一个富文本框中,但我怎样才能将它添加到动态变量中。

示例 执行的第一个文件包含:

blablabla
@Exec=test.sqi
blablabla
@Exec=test2.sqi

在我的文件阅读结束时,我希望能够拥有像这样的变量: ScriptName1 = test.sqi ScriptName2 = test2.sqi

 while ((Line = file.ReadLine()) != null)
        {

            if (Line.Contains(FirstString))
            {

                int Pos1 = Line.IndexOf(FirstString) + FirstString.Length;
                int Pos2 = Line.IndexOf(LastString);
                FinalString = Line.Substring(Pos1, Pos2 - Pos1);
                FinalStringTrimed = FinalString.Trim('(',')');
                Extension = FinalStringTrimed.Substring(0,3);
                Extension = "." + Extension ;
                FileName = FinalStringTrimed.Substring(4, FinalStringTrimed.Length - 4);
                FullFileName = FileName + Extension;

                richTextBoxProcess.AppendText(FullFileName);
                richTextBoxProcess.AppendText(Environment.NewLine);

                MessageBox.Show(FullFileName);    

            }


            counter++;
        }

        file.Close();

    }

感谢您的帮助!

标签: c#

解决方案


var counter = 1;
var scriptName = "ScriptName";
var dict = new Dictionary<string, string>();

        while ((Line = file.ReadLine()) != null)
        {
            var cols = Line.Split('=');

            if(cols.Length < 2) {
                continue;
            }

            var value = cols[1];
            dict[string.Format("{0}{1}", scriptName, counter)] = value;

            counter++;
        }

        foreach(var keyValue in dict) {
            Console.WriteLine(string.Format("{0} {1}", keyValue.Key, keyValue.Value));
        }

推荐阅读