如何将字符串数组强制转换为列表

本文关键字:转换 列表 数组 字符串 | 更新日期: 2023-09-27 17:49:01

我有这样一个类:

public class User
{
    public int Id;
    public ICollection<Role> Roles;
}

我有这个对象:

User userObj = new User { Id = 1 };

我想设置这个数组:

RolesVM.Items.Split(new string[] { "'r'n" }, StringSplitOptions.None);
为:

userObj.Roles

当将string[]数组分配给Roles时,我得到这个错误:

不能隐式地将类型'string[]'转换为'System.Collections.Generic.ICollection '

如何将字符串数组强制转换为列表

string转换为其他类型没有神奇的方法。您需要调用创建该类型对象的代码。

。如果role有构造函数接受字符串参数:

userObj.Roles = 
    RolesVM.Items.Split(new string[] {"'r'n" }, StringSplitOptions.None)
      .Select(value => new role(value))  // "convert" strings to `role` 
      .ToList(); // transform enumerable to type that implements ICollection (List)

根据您的role类型,new role(value)可能需要替换为其他转换,如new role{ Value = value}或对于枚举- Enum.Parse(typeof(role), value)

相关文章: