如何在将逗号分隔字符串转换为通用列表之前检查空值

时间:2013-09-19 19:38:31

标签: c# linq

我想从逗号分隔的字符串值转换为字符串的通用列表。我想在不使用某种方法的情况下这样做。

我使用下面的代码,但这给了我一个隐含的转换错误。

List<string> lstTags = (string.IsNullOrEmpty(f.TagName) ? new List<string>():
 (new List<string>(f.TagName.Split(','))); 

2 个答案:

答案 0 :(得分:7)

如果添加“using System.Linq;”,则可以使用.ToList()将.Split()返回的字符串数组转换为List。

List<string> lstTags = (String.IsNullOrEmpty(f.TagName) ? new List<string>() :
    f.TagName.Split(',').ToList());

或者,如果你不介意当f.TagName为null时调用.Split()和.ToList()的效率很小,那么你可以使用null-coalescing运算符(??):

List<string> lstTags = (f.TagName ?? "").Split(',').ToList();

答案 1 :(得分:2)

首先,您似乎尝试使用构造函数实例化List对象,该构造函数接收从Split()返回的字符串[]。列表与LT;&GT;构造函数采用IEnumerables或int来确定大小,但没有C#List&lt;&gt;接受字符串[]。

的构造函数

其次,由于某种原因,您的List&lt;&gt;附加了一个ToString()方法参考。我相信这会为你的记忆位置返回一个十六进制字符串。

而不是这个复杂的字符串,尝试做这样的事情:

List<string> lstTags = new List<string>():
if(!(string.IsNullOrEmpty(f.TagName))
    lstTags.AddRange(f.TagName.Split(',');

AddRange()添加从语句返回的对象数组。