C# For循环with if语句未将值发送到文本框
我正在比较数组1中的特定位置[0]和数组2中的位置[I],当它们彼此相等时,我希望将位置为[I]的第三个数组放在文本框字段中 问题是该值不会放在文本框中。 我已经检查了这些值是否相等,它们是否相等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
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];