IComparable
class
CheckCompare:IComparable<CheckCompare>
{
public
int A = 0;
public
int B = 0;
public
int C = 0;
public
int Total
{
get
{
return this.A + this.B + this.C;
}
}
public
int CompareTo(CheckCompare
other)
{
if (this.Total > other.Total)
return 1;
else if (this.Total < other.Total)
return -1;
else
return 0;
}
}
static
void Main(string[]
args)
{
List<CheckCompare> ccl = new
List<CheckCompare>();
for
(int ii = 3; ii > 0;ii--)
{
CheckCompare cc = new
CheckCompare() { A = ii, B = ii + 2, C = ii
+ 8 };
ccl.Add(cc);
}
ccl.Sort();
foreach
(CheckCompare cz in
ccl)
Console.WriteLine(cz.Total);
IComparer
public
class CheckCompareAComparer
: IComparer<CheckCompare>
{
public
int Compare(CheckCompare
x, CheckCompare y)
{
if (x.Total > y.Total)
return 1;
else if (x.Total <
y.Total)
return -1;
else
return 0;
}
}
static
void Main(string[]
args)
{
List<CheckCompare> ccl = new
List<CheckCompare>();
for
(int ii = 3; ii > 0;ii--)
{
CheckCompare cc = new
CheckCompare() { A = ii, B = ii + 2, C = ii
+ 8 };
ccl.Add(cc);
}
ccl.Sort(new CheckCompareAComparer());
foreach
(CheckCompare cz in
ccl)
Console.WriteLine(cz.Total);
No comments:
Post a Comment