2010-12-07 10 views
1
List<string> strList = new List<string>(); 
strList.Add("a"); 
strList.Add("b"); 
// I want to do this: string joined = strList.Join(","); 
// joined = "a,b" 

私は、リストまたはそのような何かのオフ拡張子を作成する必要がありますか?私はそれが最初にリストのbookListを持っていた場合、タイプが文字列であることを確認することができる、ブックオブジェクトを連結しようとしていると思いますC例えば、DELIMでリストに参加するにはどのように#、リスト<string> strList ;,その後、strList.Join(「」)

ありがとう!

--- EDIT

を明確にするために、私はList<string>ための拡張を求めていました。混乱させて申し訳ありません!

+0

をしたい場合、あなたが本オブジェクトの例を与えることができ、他のものは、文字列として言及しています –

答えて

1

はい、あなたはこのようなカスタム拡張を記述する必要があります:

public static string JoinString 
    (this IEnumerable<string> source, string separator) 
{ 
    return string.Join(separator, source); 
} 

これは、あなたがIEnumerable<string>(例えばのようなList<string>)を実装するものでJoinStringを呼び出すことができるようになる:

string joined = strList.JoinString(","); 

これは.NET 4固有の回答です。.NET 3.5を使用している場合、拡張メソッドは次のようになります。

public static string JoinString 
    (this IEnumerable<string> source, string separator) 
{ 
    return string.Join(separator, source.ToArray()); 
} 
+0

'String.Join()'は配列を期待しています... – Lucero

+0

'IEnumerable 'を受け入れる.NET 4のオーバーロードが追加されました。http://msdn.microsoft.com/en/ -us/library/dd783876.aspx –

+0

String.JoinはIEnumerable を受け取ります。http://msdn.microsof t.com/en-us/library/dd783876.aspx – wageoghe

2

あなたはこれを試してみました:

List<string> strList = new List<string>(); 
strList.Add("a"); 
strList.Add("b"); 
string joined = string.Join(",", strList); 

String.Joinは)とても特別な拡張メソッドを記述する必要やてToArray(を経由して配列に変換してIEnumerableを取りません。

+0

これは実際にOPの質問に答えるものではありません。彼らは、リスト自体に 'Join'メソッドを持たせたいと思っています。 –

+0

私は "特別な拡張メソッドを書く必要はありません"と言っていますが、質問を見てstrList.Joinを書くことができるように要求するために、JoinメソッドをListに追加する拡張メソッドが必要です。ただし、Listを結合するには、引き続きString.Joinを使用してListに渡すことができます。 – wageoghe

+0

私はそれを非常に注意深く読んでいませんでしたが、最初に "List を与えて、その値を1つの文字列にする方法"を意味していたのでしょうか?IEnumerable をJoinに渡すことを知らなかったかもしれません。あなたは正しいですが、少なくともList(またはIEnumerable)のJoin拡張メソッドについて知りたいだけでなく、おそらくstring.JoinをIEnumerableに適用したいと思うようです。 – wageoghe

0

あなたはこのコード

string line = string.Join(",", strList.ToArray()); 
Console.WriteLine(line); 

を使用することができます参加する必要があり、あなたがあなたの本や文字列オブジェクトの例を与える必要がある場合は、条件

関連する問題