c#获取数组索引id

时间:2012-04-30 10:51:22

标签: c# .net visual-studio

不确定我是否在正确的轨道上,但我想找到一个数组的索引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!!")
            }
        }
    }
}

任何帮助表示赞赏

3 个答案:

答案 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的问题,这条线的内容究竟是什么?