比較,我有一個類,像這樣:IComparable的的CompareTo(),我如何能實現在2個不同的領域
public class Incident : IComparable<Incident>
{
public int Id { get; set; }
public string Description { get; set; }
public string IncidentType { get; set; }
public int CompareTo(Incident other)
{
string str = other.Description;
int ret = -1;
if (String.Compare(Description, str, StringComparison.OrdinalIgnoreCase) < 0)
ret = 1;
else if (String.Compare(Description, str, StringComparison.OrdinalIgnoreCase) > 0)
ret = -1;
else if (String.Compare(Description, str, StringComparison.OrdinalIgnoreCase) == 0)
ret = 0;
return ret;
}
}
我可以按字母基礎上,描述字段這個類的對象。 如何根據IncidentType字段對類進行排序?
我不想在兩個字段上同時對它們進行排序。 有時候我想通過事件Description
,有時IncidentType
你在用什麼排序? 'List.Sort()'? '的OrderBy()'?還有別的嗎? – svick
使用OrderBy()進行排序。 – theIrishUser
與您的問題無關,但是有幫助的提示。通過執行'int ret = String.Compare(Description,str,StringComparison.OrdinalIgnoreCase);',然後返回'ret',可以將比較次數從3減少到1。 'CompareTo'不會說返回值必須是'-1'或'0'或'1'。它表示它必須是「<0」,「0」或「> 0」。 –