我有这堂课:
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
时,我收到此错误:
无法隐式转换类型&#39; string []&#39;到&#39; System.Collections.Generic.ICollection
我该怎么做?
答案 0 :(得分:0)
将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)
。