16

私は以下を使用しています:

return string.Join("\n", parts);

パーツには 7 つのエントリがありますが、そのうちの 2 つは空の文字列 "" です。最初にこれら 2 つのエントリを削除してから、残りの 5 つを結合するにはどうすればよいですか?

4

4 に答える 4

2

これを行う別の方法は、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 を参照してください

于 2013-12-02T12:28:29.803 に答える
1

使ってみてください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));
于 2012-10-08T08:24:25.383 に答える
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 である必要があります)。

于 2016-09-14T08:40:03.237 に答える