gpt4 book ai didi

c# - 使用 foreach 循环在文本文件中搜索字符串

转载 作者:行者123 更新时间:2023-11-30 20:20:29 30 4
gpt4 key购买 nike

所以我试图在文件中搜索一些特定的字符串,这些字符串存储在 list 中,被称为 universitiesCoursesUPGG 我正在使用 Streamreader 加载文件。

我遇到的问题是,在第一个 foreach 循环执行了剩余的搜索后,我想完成返回 N/a 就好像字符串不存在于文本文件。但是我知道它们在文本文件中。

是否有这样做的原因或更好的编码方式?

我的代码在下面。

如有任何帮助,我们将不胜感激。

validdirectory = new DirectoryInfo(path);
Vfiles = validdirectory.GetFiles("*.txt");
foreach (FileInfo file in Vfiles)
{
//reads the file contents
bool Stepout = false;
bool nextouterloop = false;
using (StreamReader ReadMessage = new StreamReader(file.FullName))
{
String MessageContents = ReadMessage.ReadToEnd();
Message_Viewer.Text = MessageContents;
foreach (string Uni_Name in Universities)
{
if (MessageContents.Contains(Uni_Name))
{
Display_Uni.Text = Uni_Name;
}
}

foreach (string course in Courses)
{
if (MessageContents.Contains(course))
{
Display_Course.Text = course;
}
Display_Course.Text = "N/A";
}

if (MessageContents.Contains("Postgraduate"))
{
Display_UGPG.Text = "Postgraduate";
}
else if (MessageContents.Contains("Undergraduate"))
{
Display_UGPG.Text = "Undergraduate";
}
Display_UGPG.Text = "N/A";
}
}

最佳答案

去掉循环内N/A的赋值,让它运行直到完成。
最后,您可以只测试文本框的内容,看看您的循环是否找到了一些东西,如果没有,则设置 N/A 文本

    foreach (string course in Courses)
{
if (MessageContents.Contains(course))
Display_Course.Text = course;
}
if (MessageContents.Contains("Postgraduate"))
Display_UGPG.Text = "Postgraduate";
else if (MessageContents.Contains("Undergraduate"))
Display_UGPG.Text = "Undergraduate";

if(string.IsNullOrWhitespace(Display_Course.Text))
Display_Course.Text = "N/A";

if(string.IsNullOrWhitespace(Display_UGPG.Text ))
Display_UGPG.Text = "N/A";

顺便说一下,如果您使用数组或列表来表示大学和类(class),我想您希望看到所有匹配的名称。实际上,您的代码总是写入在文本框中找到的最后一门类(class)和大学,覆盖以前找到的名称。
您应该通过调用 AppendText 更改设置 Text 属性的行(如果文本框是 multiline = true,可能还添加一个换行符)

....
Display_Uni.AppendText(Uni_Name + Environment.NewLine);
...
Display_Course.AppendText(course + Environment.NewLine);

关于c# - 使用 foreach 循环在文本文件中搜索字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36559210/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com