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 に答える