给定字符串“a:b,c”,我想在 C# 中使用正则表达式和 lambda 表达式将字符串拆分为类列表,以便返回以下内容。
{
Column1: "a",
Column2: "b",
},
{
Column1: "a",
Column2: "c",
}
换句话说,我想为冒号后面的每个逗号分隔值重复冒号之前的值。在 SQL 中,这相当于进行交叉连接,其中 Column1 是连接的左侧,而 Column2 是连接的右侧。
我有大部分代码,包括正则表达式,但我无法将逗号分隔值的第二个select
投影split
到新类中。相反,我的代码有效地返回以下内容。
{
Column1: "a",
Column2: [
"b",
"c"
]
}
这是我的代码,就目前而言。
public class MyClass {
public string Column1 { get; set; }
public string Column2 { get; set; }
}
List<MyClass> mc = "a:b,c"
.Select(a => new { Column1 = new Regex(@"[a-z]+(?=\:)").Match(a).Value), Column2s = new Regex(@"(?<=\:)[a-z]+(,[a-z]+)*").Match(a).Value })
.Select(b => new MyClass { Column1 = b.Column1, Column2 = b.Column2s.Split(',') })
.ToList();
感谢您的帮助。