这让我感到困惑,但一定很简单。
我有一个类,Strength的值可以是HIGH/MEDIUM/LOW:
public class SearchResults
{
private List<string> _categories;
public string caseID { get; private set; }
...
public string Strength { get; set; }
}
我做了一个API调用并获得了一个List<SearchResults>
列表
var resultres = JsonConvert.DeserializeObject<List<SearchResults>>(mycase.GetResults());
我想做的是按照 HIGH/MEDIUM/LOW 的顺序排序结果,但如果我按以下方式操作,则按字母顺序排列,即 H/L/M。
resultres.Sort((x, y) => x.matchStrength.CompareTo(y.matchStrength));
我(可能不正确地)尝试使用枚举:-
enum ResultStrength
{
HIGH,
MEDIUM,
LOW
}
但是我找不到一种方法来使用它来强制顺序,如果我使用以下内容,则会出现“无法将 lambda 表达式转换为类型 'System.Collections.Generic.IComparer',因为它不是委托类型”的错误。
resultres.Sort((x, y) => x.ResultStrength.CompareTo(y.ResultStrength));
我尝试了实现各种
IComparer<SearchResults>
和Comparison<SearchResults>
,但我无法使其编译或正常工作。