Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/20.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#_.net - Fatal编程技术网

C# 将逗号分隔的列表转换为列表

C# 将逗号分隔的列表转换为列表,c#,.net,C#,.net,我有一个包含逗号分隔值的列表,例如,每个项目看起来像123、123、123。现在,我想把它转换成一个列表。我该怎么做 我尝试了以下方法: List<int> TagIds = parameters.AccidentId.Split(',').Select(int.Parse).ToList(); 但它说: System.Collections.Generic.List不包含接受类型为“System.Collections.Generic.List”的第一个参数的拆分定义 我对意外I

我有一个包含逗号分隔值的列表,例如,每个项目看起来像123、123、123。现在,我想把它转换成一个列表。我该怎么做

我尝试了以下方法:

List<int> TagIds = parameters.AccidentId.Split(',').Select(int.Parse).ToList();
但它说:

System.Collections.Generic.List不包含接受类型为“System.Collections.Generic.List”的第一个参数的拆分定义

我对意外ID的定义如下:

if (AccidentId != null && AccidentId.itemsSelected != null)
{
    parameters.AccidentId = new List<string>();
    foreach(var param in AccidentId.itemsSelected)
    {
        parameters.AccidentId.Add(param);
    }
}  

实际上,您有一个列表列表。列表中的每个字符串都是逗号分隔的列表

您可以使用SelectMany将多个序列展平到单个列表中

比如:

parameters.AccidentId.SelectMany(s => s.Split(',').Select(int.Parse)).ToList()
这大致相当于

List<int> TagIds = new List<int>();

foreach(string s in parameters.AccidentId)
{
    string[] accidentIds = s.Split(',');
    foreach(string accidentId in accidentIds)
    {
        TagIds.Add(int.Parse(accidentId));
    }
} 

实际上,您有一个列表列表。列表中的每个字符串都是逗号分隔的列表

您可以使用SelectMany将多个序列展平到单个列表中

比如:

parameters.AccidentId.SelectMany(s => s.Split(',').Select(int.Parse)).ToList()
这大致相当于

List<int> TagIds = new List<int>();

foreach(string s in parameters.AccidentId)
{
    string[] accidentIds = s.Split(',');
    foreach(string accidentId in accidentIds)
    {
        TagIds.Add(int.Parse(accidentId));
    }
} 
如果parameters.AccidentId是一个列表而不是单个字符串,则不能直接使用string.Split。但无论如何,您都应该重命名该属性,f.e.AccidentiList

您可以使用这种方法:

List<int> TagIds = parameters.AccidentId
    .SelectMany(id => id.Split(',').Select(int.Parse))
    .ToList();
如果parameters.AccidentId是一个列表而不是单个字符串,则不能直接使用string.Split。但无论如何,您都应该重命名该属性,f.e.AccidentiList

您可以使用这种方法:

List<int> TagIds = parameters.AccidentId
    .SelectMany(id => id.Split(',').Select(int.Parse))
    .ToList();

parameters.AccidentId是列表吗?似乎与string.Split混合使用。parameters.AccidentId是列表吗?似乎与string.Split混合使用。