C#arraylist搜索对象属性问题
我似乎看不出我的错误。我知道这不是最好的方法,但我有义务使用Arraylist 无论如何,我知道我的arraylist包含正确的元素,我想知道我的Item类的属性号是否与“searchNr”相同 如果是,我想使用ToString()打印该元素。如果我搜索“107”(Arraylist中最后一个元素的Number属性),我会找到它。但是找不到任何其他Number属性。我可以使用If语句以外的任何语句,如(Equals)C#arraylist搜索对象属性问题,c#,.net,C#,.net,我似乎看不出我的错误。我知道这不是最好的方法,但我有义务使用Arraylist 无论如何,我知道我的arraylist包含正确的元素,我想知道我的Item类的属性号是否与“searchNr”相同 如果是,我想使用ToString()打印该元素。如果我搜索“107”(Arraylist中最后一个元素的Number属性),我会找到它。但是找不到任何其他Number属性。我可以使用If语句以外的任何语句,如(Equals) 找到所需项目后,需要添加break语句以退出循环: if (product.N
找到所需项目后,需要添加
break
语句以退出循环:
if (product.Number == searchNr) //if we find the number
{
resultTextBox.Text = ((Item)product).ToString();
break;
}
否则,您可能会找到该项,但您的循环会一直持续到最后,因此该数字不再与后续项匹配,从而导致对
else
语句进行求值。这就是为什么您经常出现在列表中查找最后一个元素(即“107”条目)的原因.您需要添加一条break
语句,以便在找到所需项目后退出循环:
if (product.Number == searchNr) //if we find the number
{
resultTextBox.Text = ((Item)product).ToString();
break;
}
否则,您可能会找到该项,但您的循环会一直持续到最后,因此该数字不再与后续项匹配,从而导致对
else
语句进行求值。这就是为什么您经常出现在列表中查找最后一个元素(即“107”条目)的原因你在哪里使用?ArayList:还有什么版本的.NET?你在哪里使用?ArayLIST?还有,你使用的是什么版本的.NET?太好了!你应该考虑用调试器来调试你的代码。如果你在你的循环上设置了断点,然后通过它,问题就已经明显了:好吧,再次感谢您,我下次将尝试使用该调试器,这一点非常新,而不是使用调试器:)@user1040281太好了!您应该考虑使用调试器来调试代码。如果您在循环上设置了断点并仔细检查了它,那么问题就很明显了:)好的,再次感谢您,我下次会尝试这个方法,在这个方面非常新,而不是使用调试器:)