Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/opengl/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
c#获取数组索引id_C#_.net_Visual Studio - Fatal编程技术网

c#获取数组索引id

c#获取数组索引id,c#,.net,visual-studio,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 =

不确定我是否在正确的轨道上,但我想找到一个数组的索引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!!")
            }
        }
    }
}
int\u findID=1;
使用(StreamReader=newstreamreader(“textfile.txt”))
{
字符串行=reader.ReadLine();
while(行!=null)
{
字符串[]数组={line};
for(int i=0;i
感谢您的帮助

试试看

if(int.Parse(array[i]) == findID)
而不是

if (array[i] == findID)
您必须将数字的
字符串
表示形式转换为
int
,然后比较两个
int

这甚至比在始终有1个元素的数组上迭代更短:

while (line != null) {
    if(int.Parse(array[i]) == findID)
        MesssageBox.Show("Line found!!")
}
编辑 试一试

int\u findID=1;
列表名称=新列表()
使用(StreamReader=newstreamreader(“textfile.txt”))
{
字符串行=reader.ReadLine();
int lineCount=0;
while(行!=null)
{
lineCount++;
名称。添加(行);
if(lineCount==\u findID)
MessageBox.Show(“找到行!!”;
}
}

@user1285872:array.Length在您检查(array[i]==findID)thi是否为(0==findID)时,这将给出数组长度1,如果findID==0,则会显示消息。

您的代码存在各种问题:

首先,如果文件不是空的,则在读取一行并始终检查同一行时,会有一个无休止的循环:

string line = reader.ReadLine();
while (line != null) {}
数组的长度始终为1项,只要您在循环本身中创建它


但是对于lineID的问题,这样一行的具体内容是什么?

请发布文本文件或至少部分文本文件。您的数组始终只包含一个元素。您试图将字符串与int进行比较。你真正想要完成的是什么?这个编译吗?
findID
是从哪里来的?您的一行不应该使用String.Split()?看起来像字符串[]数组=line.Split(',');谁在比较长度
array[i]
这里根本没有长度,它似乎在转换,不断出现错误,说“输入字符串的格式不正确”。@user1285872:文件的一行看起来如何?文本容器名称的文件。例如,迈克、杰森、弗雷德、凯恩都在下面other@user1285872例如我不太明白。您的文件内容是名称列表吗?您要比较的
findID
的数字在哪里?我想将每个名称存储在一个数组中,然后将每个数组的索引(例如[0]或[1])与findID进行比较
string line = reader.ReadLine();
while (line != null) {}