使用LINQ拆分列表中的项目

Mar*_*ark 16 c# linq

我想要将列表中的每个项目分开,但也要在每个项目中分开,如果它包含,则拆分该项目 :

例如.

string[] names = {"Peter:John:Connor","Paul","Mary:Blythe"};
name.Dump();
Run Code Online (Sandbox Code Playgroud)

将会呈现:

Peter:John:Connor
Paul
Mary:Blythe
Run Code Online (Sandbox Code Playgroud)

但是,我可以使用任何LINQ,它将提供以下列表:

Peter
John
Connor
Paul
Mary
Blythe
Run Code Online (Sandbox Code Playgroud)

我可以这样做:

foreach (var person in names)
{
    x = person.split(":").ToList();
    foreach (var personinlist in x)
    {
        // personinlist
    }
}          
Run Code Online (Sandbox Code Playgroud)

......但是,当我确定LINQ可能更优雅时,这似乎很长.

Ser*_*kiy 41

使用SelectMany来展平拆分每个名称的结果:

names.SelectMany(n => n.Split(':'))
     .Dump();
Run Code Online (Sandbox Code Playgroud)