我从没想过我会问这个。我需要一种在C#中模仿PHP的C#函数的方法。
问题是..。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实现。谢谢!
对于那些对背景故事的兴趣..。
我基本上是在尝试创建一个输入参数的MD5散列,按照FastSpring API的alpha顺序排序。它们的PHP代码段的操作方式与我翻译为C#时的预期不同,因此散列总是不正确的。
发布于 2012-08-29 22:50:41
关键字是http://msdn.microsoft.com/en-us/library/system.stringcomparer.ordinal.aspx
string[] sortedKeys= form.AllKeys.OrderBy(x => x,StringComparer.Ordinal).ToArray();https://stackoverflow.com/questions/12187487
复制相似问题