Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/300.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# For循环with if语句未将值发送到文本框_C#_Arrays_If Statement_For Loop - Fatal编程技术网

C# For循环with if语句未将值发送到文本框

C# For循环with if语句未将值发送到文本框,c#,arrays,if-statement,for-loop,C#,Arrays,If Statement,For Loop,我正在比较数组1中的特定位置[0]和数组2中的位置[I],当它们彼此相等时,我希望将位置为[I]的第三个数组放在文本框字段中 问题是该值不会放在文本框中。 我已经检查了这些值是否相等,它们是否相等 MessageBox.Show(" id [0] is : " + id[0] + "orderID [0] is : " + orderID[0] + " name 0 is : " + name[0]); 消息框显示: 这是for循环 for (int i = 0; i < id.Len

我正在比较数组1中的特定位置[0]和数组2中的位置[I],当它们彼此相等时,我希望将位置为[I]的第三个数组放在文本框字段中

问题是该值不会放在文本框中。 我已经检查了这些值是否相等,它们是否相等

MessageBox.Show(" id [0] is : " + id[0] + "orderID [0] is : " + orderID[0] + " name 0 is : " + name[0]);
消息框显示:

这是for循环

for (int i = 0; i < id.Length; i++)
{
    if (orderID[0] == id[i])
    {
        text1.Text = name[i];
    }

}

似乎在
id[0]
orderID[0]
中有新行字符
'\n'
,因为我在您的代码中没有看到它们,但消息框显示了它们

填充数组时,请按如下方式修剪或转换字符串:

orderID = orderID.Select(s => (s ?? "").Trim()).ToArray();
id = id.Select(s => (s ?? "").Trim()).ToArray();
然后,您可以将代码简化为

int i = id.IndexOf( orderID[0] );      // this returns -1 if not found
if ( i >= 0 ) text1.Text = name[i];

要打印的消息框是什么?目前的操作系统的问题似乎是,如果使用
列表
@un-lucky,它会更简单、更不复杂、更不容易出错——我编辑了我的文章。我忘了贴几行。所以。。在if语句中放一个断点,看看它是否命中..是
orderID
id
字符串数组吗?我试过你的建议,但我得到了这个错误:我不认为它会那么糟糕。。然后您可以将
s.Trim
替换为
(s??)。Trim
它适用于[1st part:](第一部分:)但由于长度原因,不适用于代码。我正在将文件1a.dll拆分为2个数组字符串。第一个是偶数位置,第二个是奇数位置。将代码添加到您的问题中,或许可以实际添加1a.dll文件的示例。。最好把它作为一个新的questin发布
int i = id.IndexOf( orderID[0] );      // this returns -1 if not found
if ( i >= 0 ) text1.Text = name[i];