根据 ID 数组对多个数组进行排序
Sort multiple arrays based on an ID array
到目前为止我得到的基本上是 2 个单独构建的数组,内容如下:
数组组 #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
创建一个包含二元组的列表。第一个元素:Id 数组,第二个元素:整数 0 .. 数组的长度。
List<Tuple<int,int>> arraySortHelperList = new List<Tuple<int,int>>();
for(...)
{
int id = ...
arraySortHelperList.Add(new Tuple<int,int>(id, n++));
}
根据 Id 元素对该列表进行排序。
现在第二个元素是排序后的索引,即排序列表中的第一项将在其第二个元素中包含第一个出现的数组槽的索引。
另一个答案:
定义一个 class,其中包含您数组中的所有属性:
class MyClass
{
int Id;
string nickName;
...
}
用数组中的此类对象填充列表。对此列表进行排序。
到目前为止我得到的基本上是 2 个单独构建的数组,内容如下:
数组组 #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
创建一个包含二元组的列表。第一个元素:Id 数组,第二个元素:整数 0 .. 数组的长度。
List<Tuple<int,int>> arraySortHelperList = new List<Tuple<int,int>>();
for(...)
{
int id = ...
arraySortHelperList.Add(new Tuple<int,int>(id, n++));
}
根据 Id 元素对该列表进行排序。
现在第二个元素是排序后的索引,即排序列表中的第一项将在其第二个元素中包含第一个出现的数组槽的索引。
另一个答案:
定义一个 class,其中包含您数组中的所有属性:
class MyClass
{
int Id;
string nickName;
...
}
用数组中的此类对象填充列表。对此列表进行排序。