在 C# 中模仿 PHP 的 ksort



我从没想过我会问这个。。。我需要一种在C#中模仿PHP的ksort函数的方法。

问题是。。。PHP会这样做。。。

PHP代码

$arr = array(
    "tagValues" => "asdfasd",
    "email" => "asdfasd",
    "referrer" => "asdfasd",
    "tags" => "asdfasd",
);
echo "Base array nn";
print_r($arr);
ksort($arr);
echo "nnksort'ed array nn";
print_r($arr);

PHP输出

Base array 
Array
(
    [tagValues] => asdfasd
    [email] => asdfasd
    [referrer] => asdfasd
    [tags] => asdfasd
)

ksort'ed array 
Array
(
    [email] => asdfasd
    [referrer] => asdfasd
    [tagValues] => asdfasd
    [tags] => asdfasd
)

而如果我在C#中这样做。。。

string[] sortedKeys = form.AllKeys.OrderBy(x => x).ToArray();

它以不同的顺序出现。tags将在tagValues之前,这是理所当然的。这是真正的字母顺序。

据我所知,ksort对数组执行某种区分大小写的ASCII操作,这就是它以不同顺序出现的原因。

我如何在C#中实现它最好使用LINQ。谢谢

对于那些对背景故事感兴趣的人

我基本上是在尝试根据FastSpring API创建一个按阿尔法顺序排序的输入参数MD5哈希。当我翻译成C#时,他们的PHP代码段的操作与我预期的不同,所以哈希总是不正确的。

关键字是StringComparer.Oordinal

string[] sortedKeys= form.AllKeys.OrderBy(x => x,StringComparer.Ordinal).ToArray();

相关内容

  • 没有找到相关文章

最新更新