我有列表,其中我的列有多个整数值(以逗号分隔)。
int sid = 2;
IEnumerable<int> ids = Program.All.FindAll( item =>
sid.contains(
item.Module.Split(',').Select(s => (int)s)
)
)
现在,请补充,如果我想选择模块为2的程序。
JSON
出现编译错误:
无法将字符串转换为int
任何人都可以帮助我。
由于
答案 0 :(得分:1)
您只能将sid转换为字符串一次并将其搜索为字符串
var sidAsStr = sid.ToString();
var result = Program.All.FindAll(item => item.Module.Split(',')
.Any(s => s.Trim() == sidAsStr));
也许它是更高效的解决方案,因为它避免了许多解析操作
答案 1 :(得分:0)
认为计划ID是罗马数字,因此您应该提供自定义转化,以便在int
中获取它们...我的解决方案获得IEnumerable
string
string sid = "2";
IEnumerable<string> ProgramIds =
Program
.Where( prg =>
(("#") + prg.Module + "#").Contains("#"+sid+"#")
||
(("#") + prg.Module + "#").Contains("#"+sid+",")
||
(("#") + prg.Module + "#").Contains(","+sid+",")
)
).Select(prg => prg.Program)
对于罗马数字转换尝试这些链接它们都是很好的解决方案......