繁体   English   中英

C#更改对象的类型

[英]C# Change type of object

我的应用程序请求获取所有用户,并将用户对象存储在ArrayList中。

 ArrayList userlist = new ArrayList();
 foreach (User user in response.users)
 {
    userlist.Add(user);
 }

所以现在我有一个用户的Arraylist。 我遍历用户列表并填充一个组合框。

        userList = Program.GetALLUsers();
        foreach (User user in userList)
        {
            cmbUserList.Items.Add(user.displayName);
        }
        cmbUserList.SelectedIndex = 0;

我的下一个功能是获取用户详细信息,该用户详细信息将User对象作为参数,因此可以进一步调用以获取特定用户对象的详细信息。

因此,现在当我单击getUserDetials按钮时,它会从组合框中获取选定的索引(应该与Arraylist中的索引相同)并将其传递给getUserDetails函数。 对于此示例,我只是对索引1进行了硬编码。

  User currentUser = userList[0];

它说它不能将对象的类型转换为用户。

Anyideas如何解决它?

一个简单的解决方案是进行显式转换:

User currentUser = (User)userList[0];

但是,最好使用List<User>而不是ArrayList 这样,您不必强制转换值。

User currentUser = (User)userList[0];

仅供参考,您也可以简单地执行((User)userList [0])。ClassMember而不使用变量。 我并不是说会更好,而是在显示选择。

我确实建议您使用List <>而不是ArrayList。

List<User> userList = new List<User>();

foreach (User user in response.users)
{
    userlist.Add(user);
}

然后,对象已存储为用户。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM