linq 字母数字组合字符串排序

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linq 字母数字组合字符串排序相关的知识,希望对你有一定的参考价值。

我在数据库有一个字段的值是这样的,字符串类型
var query= from top in context .Yield
select new SizeDTO()

size= context .size
.ToList();
结果是:2 j11 j11.5 2.5 3 4 k5 b6.5 7 8 9 10
我想对一结果排序,之前我想这样排的
.ToList().OrderBy(c => Convert.ToDouble(c.size_nm.ToString()));转型后排,但是里面有些值有字母,我也想过使用Substring去截取之后转,但是又有纯数字!求大神指导

        static void Main(string[] args)
        
            string[] all = new string[]  "a2", "b6", "4", "5", "3", "cc1.1" ;

            var v = all.Select(a => new
            
                a,
                ints = new string(a.Where(c => char.IsDigit(c) ||
                    c == '.').ToArray())
            ).Select(b => new
            
                s = b.a,
                i = Convert.ToDouble(b.ints)
            ).OrderBy(o => o.i).Select(r => r.s);

            foreach (var x in v)
                Console.WriteLine(x);
            Console.ReadLine();
        

参考技术A static void Main(string[] args)

string[] all = new string[] "a2", "b6", "4", "5", "3", "cc1.1" ;

var v = all.Select(a => new

a,
ints = new string(a.Where(c => char.IsDigit(c) ||
c == '.').ToArray())
).Select(b => new

s = b.a,
i = Convert.ToDouble(b.ints)
).OrderBy(o => o.i).Select(r => r.s);

foreach (var x in v)
Console.WriteLine(x);
Console.ReadLine();
参考技术B 取第一个字母用 编码排序呢?

以上是关于linq 字母数字组合字符串排序的主要内容,如果未能解决你的问题,请参考以下文章

Javascript:自然排序的字母数字字符串

Javascript:自然排序的字母数字字符串

算法基数排序

java 取字符串的中字母数字组合?

使用 LINQ 进行字母数字排序

C中字母排序组合的多线程计算