在C#中将列表<string>转换为List <XClass>

时间:2019-12-11 18:36:58

标签: c# .net string list

我正在写这本书是因为我没有找到解决问题的方法。 我有这样的东西:

private class MockClass
{
    public List<XClass> xList { get; set; }
}

private class XClass
{
    public XClass(string name)
    {
        this.name = name;
    }
    public string Name{ get; }
}

接下来,我有一个采用List<string>的方法,并且我想将此List<string>转换为这样的列表:

private void CreateRequest(List<string> listOfString)
{
    var request = new MockClass
    {
        xList = // here I have no idea if this can be done
    };
}

这样做有什么意义吗?还是只是在MockClass类中更改为字符串?

2 个答案:

答案 0 :(得分:6)

使用linq:

xList = listOfString.Select(a => new XClass(a)).ToList();

编辑:

使用linq Enumerable.Select扩展方法,并传递一个Func<string, XClass>选择器。选择器会将listOfString的每个元素从string转换为XClass的实例。结果将是IEnumerable<XClass>,您可以通过调用List<XClass>将其转换为ToList()

答案 1 :(得分:0)

List.ConvertAll方法可用于转换列表项:

xList = listOfString.ConvertAll(name => new XClass(name));