【发布时间】:2021-09-17 15:03:07
【问题描述】:
我在一个项目中工作,我正在从 .txt 文件中读取值,以检查我从数据库中获取的数据是否具有至少一个等于 .txt 文件的值。
例子:
.txt 文件内容
22, 23, 24, 25
.txt 文件中的“23”应该有 4 个来自数据库的结果,我想要做的是在找到是否有 1 个结果之后转到下一行,在这种情况下为 23。
我尝试创建一个带有 bool 的模型来比较是否已添加但仍无法正常工作,添加到哈希集但没有结果。
这是我目前所拥有的:
private void Fetch()
{
List <CList> itemList = new List<CList>();
using (StreamReader sr = new StreamReader("numberOfItems.txt"))
{
string line;
while ((line = sr.ReadLine()) != null)
{
string[] itemsC = line.Split(",");
//Logic here: check if itemC has one result from container, skip to the next line in numberOfItems.txt
}
}
}
【问题讨论】:
-
你的
.txt文件真的不止一行吗?看来你真的只有一行逗号分隔的值。您需要迭代您的itemsC数组。如果我没看错的话。你的确切问题不是很清楚。 -
@ScottWelker 我的 .txt 有 10 行,我想检查从 .txt 获取的值是否等于数据库中的数据 ill 添加到列表并转到下一行,不添加不止一项。
-
如果你的文件只有 10 行,老实说,跳过
StreamReader并使用File.ReadAllLines将整个文件放入string[]。然后跳过一行就像读取数组中的下一个元素一样简单。 -
continue 声明似乎是您问题的答案,但我认为这不是您要问的。
-
在
StreamReader上使用ReadLine时,阅读器从当前位置开始阅读,直到看到行尾,然后将文本行作为字符串交还。行可能很长,也可能是空的,所以没有“跳到下一行”的魔法。您想要做的是,如果您决定跳过下一行,则设置一个标记为ignoreNextLine。设置标志后,您读取下一行但不处理它(您所做的唯一处理是清除ignoreNextLine标志)。
标签: c# azure streamreader