c#数组的Array.IndexOf问题
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace 数组的查找排序
{
class Circle:IComparable
{
int radius;
public Circle(int radius)
{
this.radius = radius;
}
public int CompareTo(Object obj)
{
int rad;
rad=((Circle)obj).radius;//强制转换,然后调用
if (rad > radius)
return -1;
else if (rad < radius)
return 1;
else
return 0;
}
public override string ToString()
{
return ""+radius;
}
}
class Class1
{
static void PrintArray(Array MyArr)
{
foreach (Object i in MyArr)
{
Console.Write("\t{0}",i);
}
Console.WriteLine();
}
public static void Main()
{
Circle[] circle = new Circle[] { new Circle(7), new Circle(3), new Circle(4), new Circle(5), new Circle(6) };
Console.WriteLine("排序前:");
PrintArray(circle);
//索引1
Circle a = new Circle(3);
int c = Array.IndexOf(circle,a);
Console.WriteLine(c);
Array.Sort(circle);
Console.WriteLine("排序后:");
PrintArray(circle);
//索引2
string[] d = { "桃花", "菊花" };
int f = Array.IndexOf(d, "桃花");
Console.WriteLine(f);
Console.ReadLine();
}
}
}
索引1 输出的结构永远是-1为什么啊,到底哪里错了,索引2的却是对的