单行。我正在尝试将List转换为逗号分隔值并在单个传递中检查空值。那么我们如何做到以下几点:
我已经检查了但是所有的例子都证明了这一点,没有空/列表检查。
string stringOfCommaSeparatedFoos = (lstFoos.Any() ?
string.Join(",", lstFoos.Select(x => x.fooItem)).ToArray() :
String.Empty);
更新 我试过这个,但它给出了null引用异常。 谢谢!
答案 0 :(得分:1)
您无需检查lstFoos是否为空:
String.Join(",", lstFoos.Where(x => x != null).Select(x => x.fooItem))
如果没有要加入的内容(空序列),则默认情况下String.Join
将返回空字符串:
public static string Join<T>(string separator, IEnumerable<T> values)
{
using (IEnumerator<T> enumerator = values.GetEnumerator())
{
if (!enumerator.MoveNext())
return Empty;
// ...
}
}
如果您有以下fooItem值:"a", "b", null, "c"
,则上面的代码将生成字符串"a,b,,c"