C# i可比较<;字符串>;实现-无法访问字符串的长度 class MyComparer:IComparable { 公共整数比较(字符串秒) { int diff=此.Length-秒.Length; 返回。。。 } }
该代码不起作用,因为“MyComparer”不包含“长度”的定义,所以如何访问长度?您实现了错误的接口。相反,您需要:C# i可比较<;字符串>;实现-无法访问字符串的长度 class MyComparer:IComparable { 公共整数比较(字符串秒) { int diff=此.Length-秒.Length; 返回。。。 } },c#,collections,C#,Collections,该代码不起作用,因为“MyComparer”不包含“长度”的定义,所以如何访问长度?您实现了错误的接口。相反,您需要: class MyComparer:IComparer { 公共整数比较(字符串x、字符串y) { int diff=x.长度-y.长度; } } 为什么您希望您的MyComparer应该有一个属性Length?您正在尝试比较两个字符串吗?现在还不清楚这到底是为了什么String已经实现了IComparable。理论上,MyComparer将包含一个用于比较的字符串属性。是的,我
class MyComparer:IComparer
{
公共整数比较(字符串x、字符串y)
{
int diff=x.长度-y.长度;
}
}
为什么您希望您的MyComparer
应该有一个属性Length
?您正在尝试比较两个字符串吗?现在还不清楚这到底是为了什么String
已经实现了IComparable
。理论上,MyComparer
将包含一个用于比较的字符串属性。是的,我想比较两个具有IComparable的字符串。VisualStudio标记错误:“MyComparer”不包含“长度”的定义
class MyComparer : IComparable<string>
{
public int CompareTo(string second)
{
int diff = this.Length - second.Length;
return ...
}
}
class MyComparer : IComparer<string>
{
public int Compare(string x, string y)
{
int diff = x.Length - y.Length;
}
}