c# - 在 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();
}
感谢您的帮助!
解决方案
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));
}
推荐阅读
- flutter - 在列表中删除和添加新卡片 -Flutter
- javascript - React - 如何在 useEffect 期间将反应组件附加到 useRef 组件
- angular - 设置 mat-select 的默认值
- scala - 如何更改 SBT 依赖关系解析中的超时阈值?
- multithreading - 多线程引用计数
- c++ - 对复制 ctor 和 ctor 的未定义引用
- google-classroom - Google 课堂成绩册 API 代码 var。细绳
- javascript - 饼图未在扩展面板上呈现(EXT JS)
- python - 将 Ajax 添加到 Django
- api - 嘿,有人可以给我看一些关于 discord.py API 的代码吗?使用来自网站的 api