你如何链接两个数组?
-
22-07-2019 - |
题
我在一个基本的编程类,并且一切都在伪代码完成。
我的问题是:你如何连接两个数组?
我有一个一维数组,列出学生的名字,和我有一个二维数组,列出每个学生的前八名成绩......这是所有罚款和花花公子,但现在我需要的数组进行排序由学生的名字。我在线上戳周围,并通过书籍阅读本章两次,它只是简单地提到了连接两个数组,但目前尚无实例。
如果它的任何帮助,我们使用冒泡排序,而这正是我相当熟悉......我的名字排序,这是比较容易的部分,但我不知道怎么的成绩如此排序他们不出去的订单。
感谢您的输入!
旁注:我想通了!最后我做格雷格Hewgill是如何提及。当我把我的意见给他的建议,我开始随意扔在代码行,直到这个想法打我......它看起来并不漂亮(一个模块交换的名字,另一个交换档次,第三甚至然后以交换学生个人成绩早前在一个多维数组),但它确实似乎工作......没有办法测试它的语言,因为我没有编译器也没有我足够的知识,使伪代码转换成实际的代码,如果我是下载一个,但它听起来在纸上真的好我打出来的!
由于我也是在说明中提到,我也感谢大家的迅速和有益的见解,其实我压根没想到我会得到一个答复,今晚,再次感谢大家对你的帮助!
杰弗里
解决方案
你可能想要做的是:当你整理的名字,你必须交换两个位置,做的相同的互换得分在数组中。这样一来,您对姓名阵列的所有更改会反映在分数阵列英寸当您完成后,分数将在相同的排序顺序的名称。
有与不同的数据结构这样做的更有效的方法,因为其他意见将显示。
其他提示
定义一个简单的Student类是这样的:
public class Student : IComparable<Student>
{
public string Name { get; set; }
public int[] Scores { get; set; }
#region IComparable<Student> Members
public int CompareTo(Student other)
{
// Assume Name cannot be null
return this.Name.CompareTo(other.Name);
}
#endregion
}
然后甚至更简单的
var students = new[] {
new Student(){ Name = "B", Scores = new [] { 1,2,3 } },
new Student(){ Name = "C", Scores = new [] { 3,4,5 } },
new Student(){ Name = "A", Scores = new [] { 5,6,7 } }
};
Array.Sort(students);
将做的工作适合你。
您的前提是错误的。你不应该有在第一位置2个数组。
您应该具有的对象的,其中的每一个持有学生的名字和他的得分一个数组:
public class Record
{
public string Student;
public int[] Scores;
}
有两种方法:第一,排序的名称时,每次交换两个名字的时候,交换(无论你想打电话给他们列或)的分数,在相同位置的行。在结束时,将得分仍然应该是与名称同步。
其次,代替排序的名称,创建一个第三阵列将包含索引到其它两个阵列,最初为0至n-1,但随后进行排序,比较名称[a]和名称并[b],代替排序名称阵列本身。