将字符串集合转换为 List

本文关键字:int List 字符串 集合 转换 | 更新日期: 2023-09-27 17:55:09

我有一个StringCollection对象通过一个ReportParameter对象传递,我需要让它成为一个List<int>

到目前为止,我已经尝试过这个

List<int> ids = (parameters != null) ? parameters[parameters.FindIndex(x => x.Name == "IDs")].Values.Cast<int>().ToList() : null;

这应该检查参数对象是否为 null,如果不是,它会找到 IDs 参数的索引,然后尝试将值强制转换为整数列表。我不断收到Cast is not valid错误。我将如何将StringCollection转换为List<int>

将字符串集合转换为 List<int>

它们是

字符串值,不能将字符串强制转换为int。您需要像这样Convert/Parse它:

parameters[parameters.FindIndex(x => x.Name == "IDs")].Values
                     .Cast<String>() //So that LINQ could be applied
                     .Select(int.Parse)
                     .ToList() 

您需要.Cast<String>()才能在StringCollection上应用 LINQ。