我想从逗号分隔的字符串值转换为字符串的通用列表。我想在不使用某种方法的情况下这样做。
我使用下面的代码,但这给了我一个隐含的转换错误。
List<string> lstTags = (string.IsNullOrEmpty(f.TagName) ? new List<string>():
(new List<string>(f.TagName.Split(',')));
答案 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()添加从语句返回的对象数组。