我从没想过我会问这个...我需要一种在 C# 中模仿 PHP 的 ksort
函数的方法。
这就是问题所在...PHP 这样做...
PHP 代码
$arr = array(
"tagValues" => "asdfasd",
"email" => "asdfasd",
"referrer" => "asdfasd",
"tags" => "asdfasd",
);
echo "Base array \n\n";
print_r($arr);
ksort($arr);
echo "\n\nksort'ed array \n\n";
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 创建按 alpha 顺序排序的输入参数的 MD5 哈希值应用程序接口(interface)。当我翻译成 C# 时,他们的 PHP 代码片段的运行方式与我预期的不同,因此散列总是不正确。
最佳答案
string[] sortedKeys= form.AllKeys.OrderBy(x => x,StringComparer.Ordinal).ToArray();
关于c# - 在 C# 中模仿 PHP 的 ksort,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12187487/