回答:
多分あなたはしようとしている
string combindedString = string.Join( ",", myList.ToArray() );
"、"は、リストの要素を分割したいものに置き換えることができます。
編集:コメントで言及されているように、あなたも行うことができます
string combindedString = string.Join( ",", myList);
参照:
Join<T>(String, IEnumerable<T>)
Concatenates the members of a collection, using the specified separator between each member.
私は私の直感にToString
基づいて、リストの各要素を呼び出した結果を連結したいとします。
var result = string.Join(",", list.ToArray());
あなたは使うことができますstring.Join
:
List<string> list = new List<string>()
{
"Red",
"Blue",
"Green"
};
string output = string.Join(Environment.NewLine, list.ToArray());
Console.Write(output);
結果は次のようになります。
Red
Blue
Green
の代わりにEnvironment.NewLine
、選択した文字列ベースの行区切り文字で置き換えることができます。
単純な結合よりも少し複雑なものが必要な場合は、LINQを使用できます。
var result = myList.Aggregate((total, part) => total + "(" + part.ToLower() + ")");
["A"、 "B"、 "C"]を取り、 "(a)(b)(c)"を生成します
String.Join(" ", myList)
またはString.Join(" ", myList.ToArray())
。最初の引数は、サブストリング間のセパレーターです。
var myList = new List<String> { "foo","bar","baz"};
Console.WriteLine(String.Join("-", myList)); // prints "foo-bar-baz"
.NETのバージョンによっては、最初にリストでToArray()を使用する必要がある場合があります。
.ToString()
参照型のメソッドSystem.Object.ToString()
は、派生型でオーバーライドしない限り(通常、組み込み型の拡張メソッドを使用して)解決されます。このメソッドのデフォルトの動作は、呼び出された型の名前を出力することです。したがって、表示されているのは予想される動作です。
あなたはstring.Join(", ", myList.ToArray());
これを達成するようなものを試すことができます。これは追加の手順ですがSystem.Collections.Generic.List<T>
、少し簡単にするために拡張メソッドに追加できます。このようなもの:
public static class GenericListExtensions
{
public static string ToString<T>(this IList<T> list)
{
return string.Join(", ", list);
}
}
(これはフリーハンドでテストされていないコードであることに注意してください。現時点では便利なコンパイラはありません。そのため、少し実験してみてください。)
わかりにくいですが、おそらく次のようなものを探しています。
var myString = String.Join(String.Empty, myList.ToArray());
これにより、リスト内の各項目でToString()メソッドが暗黙的に呼び出され、それらが連結されます。
String.Concat()
同じことをよりよく達成します。
あなたの質問に対する直接の答えはString.Join
、他の人が述べたとおりです。
ただし、いくつかの操作が必要な場合は、以下を使用できますAggregate
。
List<string> employees = new List<string>();
employees.Add("e1");
employees.Add("e2");
employees.Add("e3");
string employeesString = "'" + employees.Aggregate((x, y) => x + "','" + y) + "'";
Console.WriteLine(employeesString);
Console.ReadLine();
この方法は、テキストファイルからデータを取得して配列に格納し、それを文字列変数に割り当てるときに役立ちました。
string[] lines = File.ReadAllLines(Environment.CurrentDirectory + "\\Notes.txt");
string marRes = string.Join(Environment.NewLine, lines.ToArray());
うまくいけば誰かを助けるかもしれません!!!!
上記のすべての回答は、ネストされたリストでは機能しません。