欧美大屁股bbbbxxxx,狼人大香伊蕉国产www亚洲,男ji大巴进入女人的视频小说,男人把ji大巴放进女人免费视频,免费情侣作爱视频

歡迎來到入門教程網(wǎng)!

C#教程

當(dāng)前位置:主頁 > 軟件編程 > C#教程 >

C# 字符串按 ASCII碼 排序的方法

來源:本站原創(chuàng)|時間:2020-01-10|欄目:C#教程|點(diǎn)擊: 次

在和銀行做數(shù)據(jù)對接時,涉及到數(shù)據(jù)傳輸時的驗(yàn)簽及加密。其中數(shù)據(jù)簽名方案中就要求數(shù)據(jù)項(xiàng)根據(jù)屬性名按 ASCII碼 進(jìn)行升序排序。C#中的ASCII碼排序并不是表面上那么簡單,一不小心就入坑了。因?yàn)镃#的排序默認(rèn)并不是按照ASCII碼進(jìn)行排序的。舉個例子, 我有這樣一個字符串?dāng)?shù)組,然后對其排序。

string[] vv = { "1", "2", "A", "a", "B", "b" };
Array.Sort(vv); //結(jié)果 1 2 a A b B

如果是按照ASCII碼進(jìn)行排序的話,順序應(yīng)該是: 1, 2, A, B, a, b  而實(shí)際排序后的結(jié)果則是:1, 2, a, A, b, B . 這也就是說Sort()方法默認(rèn)情況下并不是按ASCII碼進(jìn)行排序的。之后我也同樣測試了C#中的OrderBy()的排序,發(fā)現(xiàn)它默認(rèn)情況下也并不是按照ASCII碼進(jìn)行的排序。

string[] vv = { "1", "2", "A", "a", "B", "b" };
vv.OrderBy(x => x); //結(jié)果 1 2 a A b B

那么既然默認(rèn)排序不是按ASCII碼進(jìn)行的排序,我們要怎么做呢? 看下面代碼,只需要在原來排序方法上再加個參數(shù): string.CompareOrdinal。string.CompareOrdinal會把每個字符先轉(zhuǎn)成相應(yīng)的數(shù)值(如 a 轉(zhuǎn)為數(shù)值 97),然后再對數(shù)值進(jìn)行比較。

Array.Sort(vv, string.CompareOrdinal); //ASCII排序

注:掉入這個坑是因?yàn)槠鸪醪恢廊绾螌ψ址鯝SCII碼排序,于是百度了一把。得到的結(jié)果就是這個C# 參數(shù)按照ASCII碼從小到大排序(字典序)  而當(dāng)我采用這種方式時,銀行驗(yàn)簽?zāi)遣绞冀K通不過,調(diào)試發(fā)現(xiàn)我排序后的結(jié)果和銀行那邊的不同。

以上所述是小編給大家介紹的C# 字符串按 ASCII碼 排序的方法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對我們網(wǎng)站的支持!

上一篇:C#調(diào)用Python模塊的方法

欄    目:C#教程

下一篇:C# 創(chuàng)建、部署和調(diào)用WebService簡單示例

本文標(biāo)題:C# 字符串按 ASCII碼 排序的方法

本文地址:http://mengdiqiu.com.cn/a1/C_jiaocheng/5761.html

網(wǎng)頁制作CMS教程網(wǎng)絡(luò)編程軟件編程腳本語言數(shù)據(jù)庫服務(wù)器

如果侵犯了您的權(quán)利,請與我們聯(lián)系,我們將在24小時內(nèi)進(jìn)行處理、任何非本站因素導(dǎo)致的法律后果,本站均不負(fù)任何責(zé)任。

聯(lián)系QQ:835971066 | 郵箱:835971066#qq.com(#換成@)

Copyright © 2002-2020 腳本教程網(wǎng) 版權(quán)所有