删除列表<string>中的所有字母并对其进行排序</string>

时间:2014-03-13 15:08:34

标签: c# linq

我今天遇到了这个问题,我有一个像

这样的清单
List<string> listVoie =new List<string>(){"V2","V1","3","V4","5","15"};

我必须以良好的顺序使用这些价值;所以我需要对它进行排序;但问题是某些值包含字母;换句话说;那些字母对我来说没用,我需要删除它们,现在,我试过这个

 List<string> listFilterVoie = listVoie.Where(char.IsDigit).ToList();

摆脱那些字母;但似乎效果不好;我怎么能对这份清单进行排序,谢谢你的回答;

2 个答案:

答案 0 :(得分:4)

这应该有效:

listVoie = listVoie
        .Select(str => new string(str.Where(Char.IsDigit).ToArray()))
        .Where(str => str.Length > 0)
        .OrderBy(str => int.Parse(str))
        .ToList();

它会删除字符串中不是数字的所有字符,按int - 值排序,并创建新的List<string>

答案 1 :(得分:1)

listVoie = listVoie
    .OrderBy(s => int.Parse(s.TrimStart('V')))
    .ToList();

将产生["V1","V2","3","V4","5","15"]