不确定我是否在正确的轨道上,但我想找到一个数组的索引ID并检查它是否等于另一个id然后显示一条消息。它不能出于某种原因。
int _findID = 1;
using (StreamReader reader = new StreamReader("textfile.txt"))
{
string line = reader.ReadLine();
while (line != null)
{
string[] array = {line};
for (int i = 0; i < array.Length; i++)
{
if (array[i] == findID)
{
MesssageBox.show("Line found!!")
}
}
}
}
任何帮助表示赞赏
答案 0 :(得分:1)
试
if(int.Parse(array[i]) == findID)
而不是
if (array[i] == findID)
您必须将自己号码的string
表示转换为int
,然后比较两个int
。
这比迭代总是有1个元素的数组更短:
while (line != null) {
if(int.Parse(array[i]) == findID)
MesssageBox.Show("Line found!!")
}
尝试
int _findID = 1;
List<String> names = new List<string>()
using (StreamReader reader = new StreamReader("textfile.txt"))
{
string line = reader.ReadLine();
int lineCount = 0;
while (line != null)
{
lineCount++;
names.Add(line);
if (lineCount == _findID)
MessageBox.Show("Line found!!");
}
}
答案 1 :(得分:0)
@ user1285872:array.Length当你检查if(array [i] == findID)thi将是(0 == findID)时,如果findID == 0,那么这将给出数组长度为1的消息将显示。
答案 2 :(得分:0)
您的代码存在各种问题:
首先,如果文件不为空,则在读取该行一次时会有无限循环,并始终检查同一行:
string line = reader.ReadLine();
while (line != null) {}
当你在循环中创建数组时,数组总是1项。
但是对于lineID的问题,这条线的内容究竟是什么?