-1

在一条线上。我正在尝试将列表转换为逗号分隔值并一次检查空值。那么我们怎样才能做到以下几点:

  • 检查泛型 List lstFoos 是否为空。
  • 返回逗号分隔的字符串还是空字符串?

我已经检查过了,但所有示例都证明了这一点,没有检查空/空列表。

string stringOfCommaSeparatedFoos  =  (lstFoos.Any() ? 
   string.Join(",", lstFoos.Select(x => x.fooItem)).ToArray() : 
          String.Empty);

更新 我已经尝试过了,但它给出了空引用异常。谢谢!

4

1 回答 1

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"

于 2013-09-19T16:27:11.457 回答