需要使用ArrayList来存储对象,赋值要求我使用ArrayList,很难从ArrayList中调用对象的方法



对不起,我不知道如何用正确的措辞描述我的问题。我的任务很简单,但我在c#中使用ArrayList时遇到了困难。如果我有一个对象数组,并且该对象有一个名为jump的方法,我可以通过调用它

arrObjects[index].jump();

但我的任务希望我使用ArrayList,所以我尽量避免使用数组或列表。我想将从User输入的输入与返回变量的objects方法进行比较。(使用for循环检查每个现有的对象方法。(如果我使用阵列,它看起来会像

if( arrObjects[index].ReturnName == Textbox.Text )
{
//Do Something
}

我想使用ArrayList来实现同样的目的。如有任何建议,我们将不胜感激。

抱歉没有共享代码,不熟悉使用stackoverflow<3

我试过用数组的方式来做这件事,也在网上寻找解决方案,但我的大脑被炸了。

所以我想你想说的是,问题是ArrayList只存储"对象";并且不知道对象的类型。与List不同,List使用泛型以便知道类型。

因此,在这种情况下,必须先执行显式强制转换,然后才能调用方法。所以,如果你的对象是Person类型的,那么你可以做这个

if((arrObjects[index] as Person).ReturnName().Equals(Textbox.Text))
{
}

这就是为什么List被认为更适合这种情况的原因。事实上,ArrayList实际上不应该再被使用了。另请参见:ArrayList与List<gt;在C#中

最新更新