我有一个包含Match
详细信息的类,结构如下:
public class Match
{
public string TeamHome { get; set; }
public string TeamAway { get; set; }
public string Result { get; set; }
public League League { get; set; }
}
public class League
{
public string Name { get; set; }
public string Country{ get; set; }
}
我将Match
的列表绑定到DataGrid
,但是我遇到了问题,当我对DataGrid
应用排序时,我得到了:
至少有一个对象必须实现IComparable
只有当我已经将项目添加到Matches
集合时才会发生这种情况,即DataGrid
所限定的集合,并以这种方式定义:
List<Match> Matches = new List<Match>();
我尝试修复实现IComparable
界面的错误:
public class Match : IComparable<Match>
{
public string TeamHome { get; set; }
public string TeamAway { get; set; }
public string Result { get; set; }
public League League { get; set; }
public int CompareTo(Match other)
{
return this.CompareTo(other);
}
}
错误仍然发生。 所以我需要问这些问题:
IComparable
吗?感谢您的帮助。
答案 0 :(得分:-1)
您需要将自己的实现添加到CompareTo(匹配匹配)方法 类似的东西:
sdk/extras/android/m2repository/com/android/support/
在你的班级声明中:
公共课匹配:IComparable
没有public int CompareTo(object obj)
{
Match match = obj as Match;
if(match != null)
{
return (TeamHome == match.TeamHome
&& TeamAway == match.TeamAway
&& Result == match.Result
&& League.GetHashCode() == match.League.GetHashCode())
? 0 : -1;
}
return -1;
}
但在这种情况下,我认为像这样重载Equals运算符会更有意义:
<Match>