C# 拆分数组并获取每个索引的最后一个值

C# 拆分数组并获取每个索引的最后一个值,c#,C#,我有一根像这样的线 string sortOrder= "download-15104,download-15103,download-15105,download-15106,download-15107,download-16104,download-16105"; 我只要身份证。所以,我做了这个 var ids= new List<int>(); var sortOrderArray = sortOrder.Split(','); foreach (var item in s

我有一根像这样的线

string sortOrder= "download-15104,download-15103,download-15105,download-15106,download-15107,download-16104,download-16105";
我只要身份证。所以,我做了这个

var ids= new List<int>();
var sortOrderArray = sortOrder.Split(',');
foreach (var item in sortOrderArray)
{
    var obj = item.Split('-');
    ids.Add(int.Parse(obj[1]));
}
var id=new List();
var sortOrderArray=sortOrder.Split(',');
foreach(sortOrderArray中的var项目)
{
var obj=项目分割('-');
Add(int.Parse(obj[1]);
}
有没有其他方法可以做到这一点,并迅速做到这一点

您可以使用LINQ:

var ids = input.Split(',').Select(x => int.Parse(x.Split('0')[1])).ToList();
但是,它不会更快。无论如何,它在内部使用循环。它可能更具可读性。

varids=Regex.Matches(sortOrder,@“\d+(?=,|$))
var ids=Regex.Matches(sortOrder,@"\d+(?=,|$)")
             .Cast<Match>()
             .Select(m=>int.Parse(m.Value));
.Cast() .Select(m=>int.Parse(m.Value));
我已编辑了您的标题。请看“”,其中的共识是“不,他们不应该”。谢谢@JohnSaunders,太好了。再次感谢,这真的很有帮助。尝试使用正则表达式。看到了吗?我们不能避免循环吗?甚至
string。Split
使用循环迭代字符串中的所有字符。为什么要避免循环?根据您的回答,我在代码中看到3个循环。这不是很糟糕吗?我只是问你不要指指点点,我认为你不应该对此感到担心。@Jade你确定你在正确答案下面写了一条评论吗?:)