Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在将逗号分隔的字符串转换为通用列表之前检查空值_C#_Linq - Fatal编程技术网

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();