当前位置:  开发笔记 > 编程语言 > 正文

首先按数字排序

如何解决《首先按数字排序》经验,为你挑选了1个好方法。

我有一个清单

 var x = new List() { "a", "1", "b", "2" };
 var sortedResultByNumeric = x
       .Select(s => new { OriginalString = s, 
                          ExtractNumbers = String.Join("", s.Where(Char.IsDigit)) })
       .OrderBy(o => o.ExtractNumbers).ToList();

输出是

a
b
1
2

但预计是

1
2
a
b

我怎么能这样做?



1> Salah Akbari..:

你看到的和预期的输出是基于OriginalString因为ExtractNumbers"","","1","2"那么你应该OrderBy OriginalString:

var x = new List() { "a", "1", "b", "2" };
var sortedResultByNumeric = x
           .Select(s => new { OriginalString = s, ExtractNumbers = String.Join("", s.Where(Char.IsDigit)) })
          .OrderBy(o => o.OriginalString).ToList();

输出:

1

2

一个

b

推荐阅读
惬听风吟jyy_802
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有