IListコレクションをコンマで区切ったIDの文字列に変換するエレガントな方法はありますか?IList <int>コレクションをコンマ区切りのリストに変換します。
"1,234,2,324,324,2"
IListコレクションをコンマで区切ったIDの文字列に変換するエレガントな方法はありますか?IList <int>コレクションをコンマ区切りのリストに変換します。
"1,234,2,324,324,2"
IList<int> list = new List<int>(new int[] { 1, 2, 3 });
Console.WriteLine(string.Join(",", list.Select(i => i.ToString()).ToArray()));
動作しません。 ForEach()は、IList
それは間違いだった –
なぜなら、なぜ私がForEachを書いたのかわからないと間違っていた... –
はあなたが行うことができます。
// Given: IList<int> collection;
string commaSeparatedInts = string.Join(",",collection.Select(i => i.ToString()).ToArray());
これはそれを
IList<int> strings = new List<int>(new int[] { 1,2,3,4 });
string[] myStrings = strings.Select(s => s.ToString()).ToArray();
string joined = string.Join(",", myStrings);
を行いますまたは完全にLINQを持つ
string aggr = strings.Select(s=> s.ToString()).Aggregate((agg, item) => agg + "," + item);
// list = IList<MyObject>
var strBuilder = new System.Text.StringBuilder();
foreach(var obj in list)
{
strBuilder.Append(obj.ToString());
strBuilder.Append(",");
}
strBuilder = strBuilder.SubString(0, strBuilder.Length -1);
return strBuilder.ToString();
良い選択、私は常にStringBuilderが連結ではるかに高速であることがわかった。リストのサイズが大きい場合は特に便利です! –
StringBuilder.SubStringが存在しません。StringBuilder.ToString(int startIndex、int length) – Trillian
List<int> intList = new List<int>{1,234,2,324,324,2};
var str = intList.Select(i => i.ToString()).Aggregate((i1,i2) => string.Format("{0},{1}",i1,i2));
Console.WriteLine(str);
答えを投票している人が投票した理由についてコメントを残すと便利です。 これは問題に対する完全に正当な解決策です! –
はい、正当な、それを行う最も簡単な方法ではありません。ランク付けシステムは、単にトップへの最良の回答を得ることです。 –
私は、答えが間違っているか、不正確であるか、詳細が不足している場合にのみ、投票に投票すると思います。 LINQを使用してここに投稿された回答のほとんどは、必ずしも「シンプル」ではありません! –
mstricklandは、速度が大きいのでリスト作成者を使用することをお勧めします。ただし、stringbuilderを文字列として設定することはできません。代わりにこれを試してください。
var strBuilder = new StringBuilder();
foreach (var obj in list)
{
strBuilder.Append(obj.ToString());
strBuilder.Append(",");
}
return strBuilder.ToString(0, strBuilder.Length - 1);
これはあなたの他の質問に十分に近いですか? –