排序3d列表var c#

时间:2017-03-10 12:33:36

标签: c# asp.net

我有一个包含3个字符串列表的3D数组,我想按照第一个字符串列表的字母顺序对所有数组进行排序。甚至可能吗?

这是我的3d数组:

var Complete_list = new[] { name_list, Value_list, price_list }.ToList();

name_listValue_listprice_list只是简单的List<string>

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:1)

最简单的方法是将三个列表缩减为包含具有三个属性的对象的单个列表。之后你可以排序等。

List<string> name_list = new List<string>();
List<string> value_list = new List<string>();
List<string> price_list = new List<string>();

// join the lists into a single list
var combined = Enumerable.Range(0, name_list.Count).Select(i => new
{
    name = name_list[i],
    value = value_list[i],
    price = price_list[i],
});

// here you have a single sorted list that is ordered by 'name'
var sorted = combined.OrderBy(v => v.name).ToList();

// if you need to get them back into separate lists again
var name_list_sorted = sorted.Select(s => s.name).ToList();
var value_list_sorted = sorted.Select(s => s.value).ToList();
var price_list_sorted = sorted.Select(s => s.price).ToList();

此代码假设您在每个列表中拥有相同数量的项目。