C# 如何在将逗号分隔的字符串转换为通用列表之前检查空值
我想将逗号分隔的字符串值转换为字符串的通用列表。我想不用什么方法就可以做到这一点 我正在使用下面的代码,但这给了我一个隐式转换错误C# 如何在将逗号分隔的字符串转换为通用列表之前检查空值,c#,linq,C#,Linq,我想将逗号分隔的字符串值转换为字符串的通用列表。我想不用什么方法就可以做到这一点 我正在使用下面的代码,但这给了我一个隐式转换错误 List<string> lstTags = (string.IsNullOrEmpty(f.TagName) ? new List<string>(): (new List<string>(f.TagName.Split(','))); List lstTags=(string.IsNullOrEmpty(f.TagNam
List<string> lstTags = (string.IsNullOrEmpty(f.TagName) ? new List<string>():
(new List<string>(f.TagName.Split(',')));
List lstTags=(string.IsNullOrEmpty(f.TagName)?new List():
(新列表(f.TagName.Split(','));
首先,似乎您正试图用一个构造函数实例化一个列表对象,该构造函数接受从Split()返回的字符串[]。列表构造函数使用IEnumerables或int来确定大小,但没有一个C#列表构造函数接受字符串[]
其次,由于某种原因,您的列表引用附加了一个ToString()方法,我相信这将返回一个十六进制字符串作为您的内存位置
不要使用这个复杂的字符串,请尝试执行以下操作:
List<string> lstTags = new List<string>():
if(!(string.IsNullOrEmpty(f.TagName))
lstTags.AddRange(f.TagName.Split(',');
List lstTags=new List():
if(!(string.IsNullOrEmpty(f.TagName))
lstTags.AddRange(f.TagName.Split(',');
AddRange()添加从语句返回的对象数组。如果添加“using System.Linq;”,则可以使用.ToList()将.Split()返回的字符串数组转换为列表
List<string> lstTags = (String.IsNullOrEmpty(f.TagName) ? new List<string>() :
f.TagName.Split(',').ToList());
List lstTags=(String.IsNullOrEmpty(f.TagName)?new List():
f、 标记名.Split(',).ToList();
或者,如果您不介意在f.TagName为null时调用.Split()和.ToList()的效率很低,那么您可以使用null合并运算符(??):
List lstTags=(f.TagName??).Split(',').ToList();
为什么不把它分成多行呢?这样可以更容易地调试,让下一个查看它的开发人员更容易,如果不是更快的话,执行起来可能也一样快。调用ToString()
在列表中
可能不是你想做的事…@DanPichelman永远记住-接替你的人很有可能成为一名精神病斧头杀手。你不想让他发火。”@Telastyn我很抱歉。这是我以前试图更正我的问题时留下的。我刚刚编辑了它。谢谢!@ENC0D3D-然后快速浏览一下,假设标记名
是字符串。AddRange!太棒了!没听说过这个金块!
List<string> lstTags = (f.TagName ?? "").Split(',').ToList();