如何将字符串数组转换为Ilist

时间:2015-05-14 21:17:43

标签: c#

我有这堂课:

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

我该怎么做?

1 个答案:

答案 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)