使用LINQ拆分列表中的项目

时间:2013-06-21 11:08:37

标签: c# linq

我想分隔列表中的每个项目,但也要在每个项目中分开,如果项目包含:

,则将其拆分

例如。

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

将显示:

Peter:John:Connor
Paul
Mary:Blythe

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

Peter
John
Connor
Paul
Mary
Blythe

我可以这样做:

foreach (var person in names)
{
    x = person.split(":").ToList();
    foreach (var personinlist in x)
    {
        // personinlist
    }
}          

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

2 个答案:

答案 0 :(得分:40)

使用SelectMany展平按:

分割每个名称的结果
names.SelectMany(n => n.Split(':'))
     .Dump();

答案 1 :(得分:-1)

试试这个......

names = names.SelectMany(n => n.Split(':')).ToArray();