什么是从列表中返回字符串的最优雅的方法ok,是的,我知道我可以做类似的事情
public string Convert(List<int> something)
{
var s = new StringBuilder();
foreach(int i in something)
s.AppendFormat("{0} ", i);
return s.ToString();
}
Run Code Online (Sandbox Code Playgroud)
但我确定有一种方法可以用lambdas做到这一点我也尝试追加到一个字符串构建器,但这不是做什么预期
Mar*_*ell 24
IMO,你最好用原版; LINQ很棒,但它不是每个问题的答案.特别是,该string.Join方法需要额外的数组(为了获得很少的收益),并且该Aggregate方法使用了大量的中间字符串.
也许让它成为一种扩展方法 - 并且失去了Format东西:
public static string Concatenate<T>(this IEnumerable<T> source, string delimiter)
{
var s= new StringBuilder();
bool first = true;
foreach(T t in source) {
if(first) {
first = false;
} else {
s.Append(delimiter);
}
s.Append(t);
}
return s.ToString();
}
Run Code Online (Sandbox Code Playgroud)
Dan*_*ner 20
String result = String.Join(" ", list.Select(item => item.ToString()).ToArray());
Run Code Online (Sandbox Code Playgroud)
要解决List<int>问题,可以添加一个List<int?>,使用条件运算符或空合并运算符.但是,添加到表达式中的每个"修复"都会降低其可读性和优雅性.
Chr*_*fer 11
使用string.Join:
string.Join(" ", something.Select(i => i.ToString()).ToArray())
Run Code Online (Sandbox Code Playgroud)
用途string.Join:
List<int> data = ..;
var result = string.Join(";", data); // (.NET 4.0 only)
var result = string.Join(";", data.Select(x => x.ToString()).ToArray()); // (.NET 3.5)
Run Code Online (Sandbox Code Playgroud)