排序数组结构列表(键值)C#

use*_*986 0 c#

我有一个自定义类的数组列表,它基本上有两个属性键和值

public class myClass
{
    public key { get; set; }
    public value { get; set; }
}

ArrayList myList = new ArrayList();
// myList is a list of myClass
Run Code Online (Sandbox Code Playgroud)

如何按键对myList进行排序?

我以前一直这样做的问题是我不能再使用它,因为它不处理重复键的情况,我不能在字典中有两个相同的键.

// pseudo code
loop and add to dictionary (Key, Value)  
sort dictionary  
Dictionary<string, string> sortedTypes = myList.
    OrderBy(i => i.Key).ToDictionary(i => i.Key, i => i.Value);
Run Code Online (Sandbox Code Playgroud)

编辑:我需要先按键排序然后将值作为第二个标准

Ano*_*on. 6

首先:不要使用ArrayList.请改用通用类型List<myClass>.

然后,只需使用该List.Sort方法,传递适当的委托以用于比较.

list.Sort((x, y)=>x.key.CompareTo(y.key))
Run Code Online (Sandbox Code Playgroud)