我今天遇到了这个问题,我有一个像
这样的清单List<string> listVoie =new List<string>(){"V2","V1","3","V4","5","15"};
我必须以良好的顺序使用这些价值;所以我需要对它进行排序;但问题是某些值包含字母;换句话说;那些字母对我来说没用,我需要删除它们,现在,我试过这个
List<string> listFilterVoie = listVoie.Where(char.IsDigit).ToList();
摆脱那些字母;但似乎效果不好;我怎么能对这份清单进行排序,谢谢你的回答;
答案 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"]
。