【发布时间】:2015-10-18 18:40:53
【问题描述】:
我有List<SomeData> data;
public class SomeData
{
public int Key { get; set;}
public decimal Value { get; set;}
}
我也有List<int> DataOrder;
我需要按Key 对List<SomeData>data 进行排序,并将其与List<int> DataOrder 值的顺序相同。
有没有通用的算法呢?
例子:
List<SomeData> data = new List<SomeData>();
data.Add(new SomeData{ Key = 10, Value = 14 })
data.Add(new SomeData{ Key = 25, Value = 22 })
data.Add(new SomeData{ Key = 567, Value = 3 })
data.Add(new SomeData{ Key = 57, Value = 300 })
data.Add(new SomeData{ Key = 17, Value = 200 })
data.Add(new SomeData{ Key = 343, Value = 42 })
List<int> DataOrder = new List<int>{1, 25, 700, 567, 343, 350, 10};
排序后的结果:
foreach(var element in data)
{
Console.WriteLine(element.Key);
}
输出:
25
567
343
10
57
17
编辑:初始data数组可以有Key,不包含在DataOrder中
这样的值应该以任何顺序放置在结果集合的末尾。
更改示例以说明它。
【问题讨论】:
-
你能展示你的样本数据输入和预期输出吗?
-
SomeData 中 DataOrder 和 Keys 的大小如何,它们是否相等或可能相等?
-
我添加了我需要的结果示例。
标签: c# .net sorting collections