[英]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.