基于ID数组对多个数组进行排序

时间:2015-04-05 17:18:05

标签: c# arrays sorting indexing

到目前为止我所拥有的基本上是两个单独构建的数组,内容如下:

阵列组#1:

var nickName = ['Noah', 'Liam', 'Jacob', 'Mason', 'William',];
var lastLogin = ['03042015', '02042015', '02042015', '05032015', '16022015'];
var id = [0001, 0002, 0003, 0004, 0005];

阵列组#2:

var banStatus= [0, 0, 2, 1, 0];
var status = ['Online', 'Busy', 'Snooze', 'Offline', 'Offline'];
var id = [0003, 0005, 0001, 0004, 0002];

我想要做的是根据" id"他们都得到了阵列,(但遗憾的是他们的顺序错误。)

结果应该是这样的:

id[0] == 0001
nickName[0] == Noah
lastLogin[0] == 03042015
isBanned[0] = 2
status[0] = Snooze

2 个答案:

答案 0 :(得分:2)

另一个答案:

定义一个包含数组中所有属性的类:

class MyClass
{
     int Id;
     string nickName;
     ...
}

从数组中填充包含此类对象的List。对此列表进行排序。

答案 1 :(得分:1)

创建一个包含两元素元组的List。第一个元素:Id数组,第二个元素:整数0 ..数组的长度。

List<Tuple<int,int>> arraySortHelperList = new List<Tuple<int,int>>();
for(...)
{
     int id = ...
     arraySortHelperList.Add(new Tuple<int,int>(id, n++));
}

根据Id元素对此列表进行排序。

现在第二个元素是排序索引,即排序列表中的第一个项目将在其第二个元素中包含首先出现的数组插槽的索引。