2014-03-13 59 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