私は以下を使用しています:
return string.Join("\n", parts);
パーツには 7 つのエントリがありますが、そのうちの 2 つは空の文字列 "" です。最初にこれら 2 つのエントリを削除してから、残りの 5 つを結合するにはどうすればよいですか?
これを行う別の方法は、StringSplitOptions.RemoveEmptyEntries を使用することです。
例えば
string yourString = "The|quick||brown|||fox|is|here";
char[] delimiter = new char[] { '|' };
string result = string.Join(",", yourString.Split(delimiter, StringSplitOptions.RemoveEmptyEntries));
これは与える:
クイック、ブラウン、キツネは、ここにいます
@ステファン・シュタイガー:
string yourString = "echo 'foo' | sed '/foo/d;'";
これは与える:
echo 'foo' , sed '/foo/d;'
これは私が期待するとおりです。それの dotnetfiddle を参照してください。
使ってみてくださいLINQ
string[] hello = new string[] { "ads", "zxc", "wer", "", "wer", "", "243" };
string newString = string.Join("\n", hello.Where(x => x.Trim().Length != 0));
MessageBox.Show(newString);
また
return string.Join("\n", hello.Where(x => x.Trim().Length != 0));
.NET 2.0 (LINQ なし) でそれを行うには、たとえば、関数を記述せずに ReportingServices の場合:
C#
string a = "", b = "b", c = "", d = "d", e = "";
string lala = string.Join(" / ",
string.Join("\u0008", new string[] { a, b, c, d, e }).Split(new char[] { '\u0008' }, System.StringSplitOptions.RemoveEmptyEntries)
);
System.Console.WriteLine(lala);
VB.NET
Dim a As String = "", b As String = "b", c As String = "", d As String = "d", e As String = ""
Dim lala As String = String.Join(" / ", String.Join(vbBack, New String() {a, b, c, d, e}).Split(New Char() {ControlChars.Back}, System.StringSplitOptions.RemoveEmptyEntries))
System.Console.WriteLine(lala)
これは、バックスペース文字が文字列で発生しないことを前提としています (この文字はキーボードで単純に入力できないため、通常は true である必要があります)。