数组排序问题

NT5763 2010-10-05 07:27:38
有两个数组
string[] a ={4,1,3,2,5,6}
string[] b ={Do,4A,Cy,7B,Ei,tF}

数组a与数组b一一对应

将数组a按从小到大排序{1,2,3,4,5,6},数组b对应数组a顺序改变{4A,7B,Cy,Do,Ei,tF}

如何实现 HELP
...全文
112 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
绿色夹克衫 2010-10-05
  • 打赏
  • 举报
回复
顶一下这个答案。

[Quote=引用 7 楼 caojinrong 的回复:]

string[] a = { "4", "1", "3", "2", "5", "6" };
string[] b = { "Do", "4A", "Cy", "7B", "Ei", "tF" };

Array.Sort(a,b);
[/Quote]
兔子-顾问 2010-10-05
  • 打赏
  • 举报
回复
不知道为什么Array.Sort貌似就是3,4顺序不对。
Linq就是对的

int[] a = { 4, 1, 3, 2, 5, 6 };
string[] b = { "赵", "钱", "孙", "李", "周", "吴" };
var c = from s in b orderby a[Array.IndexOf(b, s)] select s;


string[] d = b.OrderBy(s => a[Array.IndexOf(b, s)]).ToArray();
caojinrong 2010-10-05
  • 打赏
  • 举报
回复
MSDN中如是说:

Array.Sort (Array, Array) 基于第一个 Array 中的关键字,使用每个关键字的 IComparable 实现,对两个一维 Array 对象(一个包含关键字,另一个包含对应的项)进行排序。
NT5763 2010-10-05
  • 打赏
  • 举报
回复
string[] a ={4,1,3,2,5,6}
string[] b ={赵,钱,孙,李,周,吴}


排序后结果
string[] a ={1,2,3,4,5,6}
string[] b ={钱,李,孙,赵,周,吴}

a的排序关联到b……
caojinrong 2010-10-05
  • 打赏
  • 举报
回复
int[] a = { 4, 1, 3, 2, 5, 6 };
string[] b = { "赵", "钱", "孙", "李", "周", "吴" };

Array.Sort(a,b);
兔子-顾问 2010-10-05
  • 打赏
  • 举报
回复
int[] a = { 4, 1, 3, 2, 5, 6 };
string[] b = { "赵", "钱", "孙", "李", "周", "吴" };
Array.Sort(b, (Comparison<string>)delegate(string s1, string s2)
{
return a[Array.IndexOf(b, s1)] - a[Array.IndexOf(b, s2)];
});
caojinrong 2010-10-05
  • 打赏
  • 举报
回复
试完我给的代码,然后给分
wuyq11 2010-10-05
  • 打赏
  • 举报
回复
数组排序
var result=(from a in arr select a ).OrderBy(a=>a);
Array.Sort
List.Sort
SortedList
a 是b数组元素位置索引
通过dictinary保存键值对
NT5763 2010-10-05
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 wuyazhe 的回复:]
字符串的sort本身就是按编码排序的,汉字的默认排序顺序就是拼音顺序。你的赵,钱,孙,李,周,吴打算如何排序?
[/Quote]
按数组a。比如a[1]=1 sort后a[0]=1 那 b[1]=钱 就该变成b[0]=钱
caojinrong 2010-10-05
  • 打赏
  • 举报
回复
string[] a = { "4", "1", "3", "2", "5", "6" };
string[] b = { "Do", "4A", "Cy", "7B", "Ei", "tF" };

Array.Sort(a,b);
兔子-顾问 2010-10-05
  • 打赏
  • 举报
回复
字符串的sort本身就是按编码排序的,汉字的默认排序顺序就是拼音顺序。你的赵,钱,孙,李,周,吴打算如何排序?
NT5763 2010-10-05
  • 打赏
  • 举报
回复
string[] a ={4,1,3,2,5,6}
string[] b ={赵,钱,孙,李,周,吴}
NT5763 2010-10-05
  • 打赏
  • 举报
回复
或许我编的时候没注意 数组凑巧能用sort对应上……
但我要的不是这个结果……
string[] a ={4,1,3,2,5,6}
数string[] a ={赵,钱,孙,李,周,吴}
用sort还对的上?
兔子-顾问 2010-10-05
  • 打赏
  • 举报
回复
没办法,我只提供最简单的写法,越简单越不容易出错。
NT5763 2010-10-05
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 wuyazhe 的回复:]
C# code
string[] a = { "4", "1", "3", "2", "5", "6" };
string[] b = { "Do", "4A", "Cy", "7B", "Ei", "tF" };
Array.Sort(a);
Array.Sort(b);
[/Quote]

简单一个sort? 汗
兔子-顾问 2010-10-05
  • 打赏
  • 举报
回复
string[] a = { "4", "1", "3", "2", "5", "6" };
string[] b = { "Do", "4A", "Cy", "7B", "Ei", "tF" };
Array.Sort(a);
Array.Sort(b);

111,129

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧