カンマ区切りのリストを生成するとき、末尾のカンマを切り落とす方法が嫌いです。
もっと良い方法はありますか?私はこれをかなり頻繁に行うので、意見を探しています。
for(int x = 0; x < list.Count; x++)
{
sb.Append(list[x].Name);
sb.Append(",");
}
var result = sb.toString().Substring(0, result.length - 2);
カンマ区切りのリストを生成するとき、末尾のカンマを切り落とす方法が嫌いです。
もっと良い方法はありますか?私はこれをかなり頻繁に行うので、意見を探しています。
for(int x = 0; x < list.Count; x++)
{
sb.Append(list[x].Name);
sb.Append(",");
}
var result = sb.toString().Substring(0, result.length - 2);
String.JoinとLinqのIEnumerable.Select拡張メソッドを使用します。
var str = String.Join(",", list.Select(x => x.Name));
String.Join
およびEnumerable.Select
(名前空間System.Linq)メソッドを使用できます
String.Join各要素間に指定された区切り文字を使用して、文字列配列のすべての要素を連結します。
Enumerable.Selectシーケンスの各要素を新しい形式に投影します。
String.Join(",", list.Select(x => x.Name));
規範事例:
string.Join(",",list.Select(l => l.Name));
nullチェックあり:
string.Join(",",list.Where(l => l != null).Select(l => l.Name));
null /空のチェックあり:
string.Join(",",list.Where(l => !string.IsNullOrEmpty(l)).Select(l => l.Name));
トリミングあり:
string.Join(",",list.Select(l => l.Name.Trim()));
双方と:
string.Join(",",list.Where(l => !string.IsNullOrEmpty(l)).Select(l => l.Name.Trim()));
そして、1つの洗練されていないソリューションJoin
for(int x = 0; x < list.Count; x++)
{
if (x > 0)
sb.Append(",");
sb.Append(list[x].Name);
}
var result = sb.toString();