2014-03-13 60 views
1

我今天遇到这个问题,我有一个像删除所有字母列表中<string>和排序它

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

名单我有一个很好的为了使用这些值;所以我需要对它进行分类;但问题是有些值包含字母;换句话说,这些字母是无用的对我来说,我需要将其删除,现在,我想这

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

来摆脱掉那些字母;但它似乎不太好;我怎么能整理这份清单,谢谢你的回答;

回答

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>

+0

Yay FGITW。第一次发布时这个答案是不正确的... –

+0

谢谢;它运作良好。 – WickedFAN

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

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

+0

谢谢!它可以帮助我解决另一个问题:) – WickedFAN