2

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

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

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

2 回答 2

7

如果添加“使用 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();
于 2013-09-19T20:34:27.843 回答
2

首先,您似乎正在尝试使用构造函数实例化一个 List 对象,该构造函数接受从 Split() 返回的 string[]。List<> 构造函数采用 IEnumerables 或 int 来确定大小,但没有 C# List<> 构造函数接受字符串 []。

其次,由于某种原因,您的 List<> 引用附加了一个 ToString() 方法。我相信这将为您的内存位置返回一个十六进制字符串。

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

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

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

于 2013-09-19T19:57:57.537 回答