按不同国家语言进行字符串排序 选自:Goodspeed's Blog

void  Page_Load( object  sender, EventArgs e)
    
{
        
//测试数据
        string[] myArr = new string[6];
        myArr[
0= "地域";
        myArr[
1= "地図";
        myArr[
2= "路線";
        myArr[
3= "道路交通";
        myArr[
4= "電話帳";
        myArr[
5= "自動車";
        
        
//没有排序
        Gridview1.DataSource = myArr;
        Gridview1.DataBind();

        
//简体中文排序
        MyStringComparer myComp = new MyStringComparer(CompareInfo.GetCompareInfo("zh-CN"), CompareOptions.None);
        Array.Sort(myArr, myComp);
        Gridview2.DataSource 
= myArr;
        Gridview2.DataBind();

        
//日语排序
        myComp = new MyStringComparer(CompareInfo.GetCompareInfo("ja-JP"), CompareOptions.None);
        Array.Sort(myArr, myComp);
        Gridview3.DataSource 
= myArr;
        Gridview3.DataBind();
    }


    
private   class  MyStringComparer : IComparer
    
{
        
private CompareInfo myComp;
        
private CompareOptions myOptions = CompareOptions.None;

        
// Constructs a comparer using the specified CompareOptions.
        public MyStringComparer(CompareInfo cmpi, CompareOptions options)
        
{
            myComp 
= cmpi;
            
this.myOptions = options;
        }


        
// Compares strings with the CompareOptions specified in the constructor.
        public int Compare(Object a, Object b)
        
{
            
if (a == b) return 0;
            
if (a == nullreturn -1;
            
if (b == nullreturn 1;

            
string sa = a.ToString();
            
string sb = b.ToString();
            
if (sa != null && sb != null)
                
return myComp.Compare(sa, sb, myOptions);
            
throw new ArgumentException("a and b should be strings.");

        }

    }
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值