首页 > 解决方案 > 按另一个数组中指定的顺序对数组进行排序

问题描述

我有一个键值对列表,我想根据另一个数组中指定的顺序对其进行排序。

var requiredOrder = new String[] { "PH", "HH", "PR", "SR", "UN", "UD", "WD", "WE", "OT" };


        var listToBeSorted = new List<KeyValuePair<string, string>>() {
            new KeyValuePair<string, string>("A","PR"),
            new KeyValuePair<string, string>("B","PH"),
            new KeyValuePair<string, string>("C","HH"),
            new KeyValuePair<string, string>("D","WD"),
            new KeyValuePair<string, string>("E","OT"),
            new KeyValuePair<string, string>("F","UN"),
            .....
        };

'listToBeSorted' 是我为下拉列表获取的一个集合,需要根据 'requiredOrder' 数组按值排序。

标签: c#arrayslistsorting

解决方案


requiredOrder您可以使用数组中的项目的索引进行排序Array.IndexOf()

listToBeSorted = listToBeSorted.OrderBy(x => Array.IndexOf(requiredOrder, x.Value)).ToList();

推荐阅读