0

C# に次のような文字列があります。

string a = "A|B|C|D"

この文字列をパイプ文字で分割し、各エントリにテキストを追加したいと考えています。現在、私は次のような分割を行っています。

string[] result = a.Split('|')

しかし、文字列配列は固定サイズであるため、新しい配列を作成し、for ループを使用して先頭に追加された結果をコピーする必要があります。forループを書く代わりに、これを達成するためのLinqの方法やワンライナーはありますか? Python では、ワンライナー for ループを実行します。

newresult = ["Prepend string " + x for x in result]

助言がありますか?

4

3 に答える 3

2
var newResult = a.Split('|').Select(x => "Prepend string " + x).ToArray();
于 2012-06-30T01:45:04.337 に答える
2

あなたもそれに参加したいと言うなら、これは十分に簡単であることがわかりました:

string.Join(" , ", devices.Select(s => "PREFIX = " + s).ToArray());

于 2012-06-30T01:45:06.260 に答える
0

なぜ新しい配列を作成する必要があるのか​​ わかりませんが、最初のLinqメソッドは.Select演算子を使用することです:

stirng[] result = a.Split('|').Select(x => "Prepend string " + x).ToArray();

つまり、配列をインラインで編集することもできます (つまり、新しい配列は必要ありません)。

for (var i = 0; i < result.Length; i++) 
    result[i] = "Prepend string " + result[i];
于 2012-06-30T01:46:07.017 に答える