将自定义分隔的字符串转换为List <myClass>?

Los*_*ear 1 c# linq

我怎么转这个:

string x = "key:value|key:value|key:value|key:value";
Run Code Online (Sandbox Code Playgroud)

进入这个?

List<myClass> listObj;
Run Code Online (Sandbox Code Playgroud)

myClass定义:

public class myClass
{
    public string keyName { get; set; }
    public string keyValue { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

必须有一种方法来使用LINQ或其他东西:)提前感谢!

*注意* 我应该添加我知道如何分割它并循环它,但必须有一个更好的方法:)

Ser*_*kiy 10

这将需要单独ToList()调用,但我喜欢其声明性质的查询语法:

from s in x.Split('|')
let parts = s.Split(':')
select new myClass { 
    keyName = parts[0], 
    keyValue = parts[1] 
}
Run Code Online (Sandbox Code Playgroud)

或者您可以使用流利的语法:

x.Split('|')
 .Select(s => {
    var parts = s.Split(':');
    return new myClass { 
        keyName = parts[0], 
        keyValue = parts[1] 
    };
 }).ToList()
Run Code Online (Sandbox Code Playgroud)