16

我想分隔列表中的每个项目,但也想在每个项目内,如果它包含,则拆分项目:

例如。

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 可以更优雅时,这似乎很啰嗦。

4

2 回答 2

42

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

names.SelectMany(n => n.Split(':'))
     .Dump();
于 2013-06-21T11:09:56.177 回答
-1

尝试这个...

names = names.SelectMany(n => n.Split(':')).ToArray();
于 2014-03-22T10:16:37.393 回答