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

时间:2014-02-06 05:57:09

标签: c#

我有一个看起来像这样的字符串

string sortOrder= "download-15104,download-15103,download-15105,download-15106,download-15107,download-16104,download-16105";

我想要ids。所以,我做了这个

var ids= new List<int>();
var sortOrderArray = sortOrder.Split(',');
foreach (var item in sortOrderArray)
{
    var obj = item.Split('-');
    ids.Add(int.Parse(obj[1]));
}

还有其他方法可以做到这一点并快速完成吗?

2 个答案:

答案 0 :(得分:1)

您可以使用LINQ:

var ids = input.Split(',').Select(x => int.Parse(x.Split('0')[1])).ToList();

但是,它不会更快。无论如何,它内部使用循环。它可能更具可读性。

答案 1 :(得分:1)

var ids=Regex.Matches(sortOrder,@"\d+(?=,|$)")
             .Cast<Match>()
             .Select(m=>int.Parse(m.Value));