[英]How to create custom common number-text comparer in C# to sort numeric/string list?
[英]How to use a custom comparer to sort elements alphabetically in C#
我是C#的新手。 我正在嘗試編寫一個自定義比較器,該比較器按城市名稱的字母順序對CityInfo對象的列表進行排序。
public class CityInfoComparer
{
private readonly IComparer<string> _baseComparer;
public CityInfoComparer(IComparer<string> baseComparer)
{
_baseComparer = baseComparer;
}
public int Compare(CityInfo city1, CityInfo city2)
{
return _baseComparer.Compare(city1.CityName, city2.CityName);
}
}
public class CityList
{
public List<CityInfo> CityInfos { get; set; }
public void Sort(CityInfo city1, CityInfo city2)
{
CityInfos.Sort(new CityInfoComparer(StringComparer.CurrentCulture));
//CityInfos.Sort()
}
}
我在此行出現錯誤:
CityInfos.Sort(new CityInfoComparer(StringComparer.CurrentCulture));
無法從CityInfo轉換為Systems.Generic.Collections.Icomparer
您應該繼承自IComparer,請參見下文:
public class CityInfoComparer:IComparer<CityInfo>
{
private readonly IComparer<string> _baseComparer;
public CityInfoComparer(IComparer<string> baseComparer)
{
_baseComparer = baseComparer;
}
public int Compare(CityInfo city1, CityInfo city2)
{
return _baseComparer.Compare(city1.CityName, city2.CityName);
}
}
public class CityList
{
public List<CityInfo> CityInfos { get; set; }
public void Sort()
{
CityInfos.Sort( new CityInfoComparer(StringComparer.CurrentCulture));
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.