首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在C#中模仿PHP的ksort

在C#中模仿PHP的ksort
EN

Stack Overflow用户
提问于 2012-08-29 22:39:58
回答 1查看 1.6K关注 0票数 2

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

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

PHP代码

代码语言:javascript
复制
$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输出

代码语言:javascript
复制
Base array 

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


ksort'ed array 

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

如果我在C#上这么做..。

代码语言:javascript
复制
string[] sortedKeys = form.AllKeys.OrderBy(x => x).ToArray();

它以不同的顺序出现。tags将出现在tagValues之前,这是正确的。这才是真正的字母顺序。

我的理解是,ksort在数组上做了某种区分大小写的ASCII工作,这就是为什么它以不同的顺序出现。

如何在C#中实现?最好用LINQ实现。谢谢!

对于那些对背景故事的兴趣..。

我基本上是在尝试创建一个输入参数的MD5散列,按照FastSpring API的alpha顺序排序。它们的PHP代码段的操作方式与我翻译为C#时的预期不同,因此散列总是不正确的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-08-29 22:50:41

关键字是http://msdn.microsoft.com/en-us/library/system.stringcomparer.ordinal.aspx

代码语言:javascript
复制
string[] sortedKeys= form.AllKeys.OrderBy(x => x,StringComparer.Ordinal).ToArray();
票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12187487

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档