C# Cast IEnumerable<;字符串>;到IEnumerable<;int>;在C中#
我有:C# Cast IEnumerable<;字符串>;到IEnumerable<;int>;在C中#,c#,.net,visual-studio,C#,.net,Visual Studio,我有: IEnumerable c=codigo_incidencia.Split(“#”); 我需要将“c”转换为IEnumerable。我不知道如何在C#中进行此角色转换 有人能帮我吗?使用LINQ: IEnumerable<string> c = codigo_incidencia.Split('#'); IEnumerable c=codigo_incidencia.Split('#')。选择(x=>int.Parse(x)); 如果字符串始终保证为数字,则可以这样做:
IEnumerable c=codigo_incidencia.Split(“#”);
我需要将“c”转换为IEnumerable
。我不知道如何在C#中进行此角色转换
有人能帮我吗?使用LINQ:
IEnumerable<string> c = codigo_incidencia.Split('#');
IEnumerable c=codigo_incidencia.Split('#')。选择(x=>int.Parse(x));
如果字符串始终保证为数字,则可以这样做:
IEnumerable<int> c = codigo_incidencia.Split('#').Select(x => int.Parse(x));
IEnumerable c=codigo_incidencia.Split('#')。选择(stringValue=>int.Parse(stringValue));
最短的方法是使用linq。同样选择
:
IEnumerable<int> c = codigo_incidencia.Split('#').Select(stringValue => int.Parse(stringValue));
如果您不确定这些节是否为有效的整数,那么您需要使用TryParse
,如中所示:。如果使用C#7.0,您可以查看以下问题的答案:
var c = codigo_incidencia.Split('#').Select(int.Parse);
你试过什么吗?我不会强制转换这个,我更可能对
.Split()
的返回值调用.Select()
,并解析.Select()
中的字符串。这不是强制转换,而是转换。当然,只有当IEnumerable可以转换为IEnumerable时,才会发生这种情况。codigo_incidencia的内容是什么?感谢@ChristianGollhardt找到了合适的副本。发布答案的FGITW没有那么快;他们应该使用接近票数的选票(甚至是杜佩哈默),但是没有
var result = codigo_incidencia.Split('#')
.Select(s => new { Success = int.TryParse(s, out var value), value })
.Where(pair => pair.Success)
.Select(pair => pair.value);