排序含有数字的字符串:一个巧妙地方法

using System;
using System.Collections.Generic;
 
class Program
{
    static void Main(string[] args)
    {
        string[] floors ={ "第3楼", "第2楼", "第11楼" };
        Array.Sort<string>(floors, Factory.Comparer);
        foreach (string s in floors)
            Console.WriteLine(s);
        Console.ReadKey();
    }
}
 
// 工厂模式
class Factory : IComparer<string>
{
    private Factory() { }
    public static IComparer<string> Comparer
    {
        get { return new Factory(); }
    }
    public int Compare(string x, string y)
    {
        return x.Length == y.Length ? x.CompareTo(y) : x.Length - y.Length;
    }
}

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏技术之路

Linq 和DefaultView两种方法去掉DataTable 里的重复行

在做项目的时候经常会遇到DataTable 里的数据重复,或者合并两个DataTable后有数据重复 一般我们是想把重复的删除掉,还有其它的方式实现比如用Lin...

1946
来自专栏C#

C#的DataTable操作方法

1.将泛型集合类转换成DataTable(表中无数据时使用): public static DataTable NullListToDataTable(IL...

2077
来自专栏哲学驱动设计

090603 T LINQ的一个小问题

string strCityId = condition.CityId.ToString(); string startChar = strCityId + "...

1949
来自专栏技术之路

c#时间总结

C#里内置的DateTime基本上都可以实现这些功能,巧用DateTime会使你处理这些事来变轻松多了 今天 DateTime.Now.Date.ToShort...

21010
来自专栏魂祭心

原 WCF学习之旅----基础篇之NET

2878
来自专栏C/C++基础

C#获取系统当前时间

ystem.DateTime currentTime=new System.DateTime(); 1.1 取当前年月日时分秒 currentTime=Sy...

1503
来自专栏码农阿宇

C# 获取一个独一无二的字符串 GUID

在保存文件,创建目录时,为了保证名称不重复,经常使用Random产生一个随机数,有更简单且不会重复的办法是: Guid.NewGuid().ToString()...

25910
来自专栏c#开发者

make Entity Framework revert empty strings to null!

public override int SaveChanges(SaveOptions options)         {             forea...

2746
来自专栏Netkiller

使用 HttpClient 调用 Restful 接口

本文节选自《Netkiller Java 手札》 import java.io.IOException; import org.apache.http.Htt...

3606
来自专栏GIS讲堂

C#中获取系统时间

3822

扫码关注云+社区