2017-08-24 9 views
2

私は、文字列を区切り記号で連結する "スマートな"方法を探しています。明らかに私はこれをすべて自分でコーディングすることができるので、これを行うには単純な方法(LINQか他の方法かもしれません)があるのだろうかと思います。"スマート"な方法で文字列を連結できますか?

string s1 = "a"; 
string s2 = "b"; 
string s3 = "c"; 

そして、私は結果がa, b, cのようなものであるような文字列を連結したい:

は、私は文字列の集合を(これは文字列の任意の数とすることができる)があるだろう。これは簡単ですが、ここではひねりがあります:文字列のいずれかが空の場合、余分なカンマは必要ありません。例えば

、これは私のセットの場合:

string s1 = ""; 
string s2 = "b"; 
string s3 = "c"; 

は、私が(s1s2の両方が空の場合、または単にc)結果はb, cになりたいです。

これを行う簡単な方法はありますか?

+3

string.join – pm100

+0

@ pm100それは素晴らしいと思います - あなたは例で答えることができますか? – derekantrican

答えて

1
var list = new List<string>{"a","b","", null}; 
var res = string.Join(", ", list.Where(s => !string.IsNullOrEmpty(s))); 
+0

素晴らしい!非常に簡単です! (私はあなたのための構文と大文字を修正するためにそれを編集しました) – derekantrican

2

使用string.Join(...):.........多分に投げ.where(!S => string.isnullorempty(S))と

using System; 
using System.Linq; 
using System.Collections.Generic; 

namespace Rextester 
{ 
    public class Program 
    { 
     public static void Main(string[] args) 
     { 
      string space = " "; 
      string a = "One"; 
      string b = "Two"; 
      string c = "Three"; 
      var filteredList = (new List<string> { space, a, b, c }).Where(x => !string.IsNullOrWhiteSpace(x)); 
      string abc = string.Join(", ", filteredList); 
      Console.WriteLine(abc); //One, Two, Three 
      Console.ReadKey(); 
     } 
    } 
} 
2
string.Join(",", SOME_STRING_COLLECTION.Where(x => !string.IsNullOrWhiteSpace(x))); 
関連する問題