簡體   English   中英

C# 排序與 JavaScript 排序

[英]C# Sort vs JavaScript Sort

我將以下數組作為輸入以降序對值進行排序:

var cars = ["8587009748118224023Po","8587009748118224023PP","8587009748118224023P,","8587009748118224023P$","8587009748118224023P<","8587009748118224023P?"]

在 C# 中,我使用OrderByDescending並獲得以下輸出

C# 代碼

var rslt= cars.OrderByDescending(a => a);

結果(在每個值后添加逗號):

8587009748118224023PP,
8587009748118224023Po,
8587009748118224023P<,
8587009748118224023P?,
8587009748118224023P,
,
8587009748118224023P$,

在 Javascript 中,我使用sortreverse並得到以下不同的結果

javascript代碼

cars.sort();
cars.reverse();

結果

8587009748118224023Po,
8587009748118224023PP,
8587009748118224023P?,
8587009748118224023P<,
8587009748118224023P,
,
8587009748118224023P$

任何人都可以幫助我如何像 JavaScript 一樣對 C# 中的值進行排序?

嘗試更改 StringComparer:

Array.Sort(cars, StringComparer.Ordinal);
Array.Reverse(cars);

看起來 Javascript 正在執行不區分大小寫的排序。 對於 C#,您需要明確告訴它這樣做。 所以這應該有效;

var rslt = cars.OrderByDescending(a => a, StringComparer.OrdinalIgnoreCase);

編輯:

從 OP 更新后,他發現不需要忽略大小寫。 所以以下工作;

var rslt = cars.OrderByDescending(a => a, StringComparer.Ordinal);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM