结构体数组的排序和搜索问题 我有一个结构体数组,我想根据结构体里的某一个字段来排序,怎么做?同样地,我要搜索结构体里某一个字段的值,怎么做? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 using System;namespace Wrox.ProfCSharp.AdvancedCSharp{ delegate bool CompareOp(object lhs, object rhs); class MainEntryPoint { static void Main() { Employee [] employees = { new Employee("Karli Watson", 20000), new Employee("Bill Gates", 10000), new Employee("Simon Robinson", 25000), new Employee("Mortimer", (decimal)1000000.38), new Employee("Arabel Jones", 23000), new Employee("Avon from 'Blake's 7'", 50000)}; CompareOp employeeCompareOp = new CompareOp(Employee.RhsIsGreater); BubbleSorter.Sort(employees, employeeCompareOp); for (int i=0 ; i<employees.Length ; i++) Console.WriteLine(employees[i].ToString()); Console.ReadLine(); } } class Employee // : object { private string name; private decimal salary; public Employee(string name, decimal salary) { this.name = name; this.salary = salary; } public override string ToString() { return string.Format(name + ", {0:C}", salary); } public static bool RhsIsGreater(object lhs, object rhs) { Employee empLhs = (Employee) lhs; Employee empRhs = (Employee) rhs; return (empRhs.salary > empLhs.salary) ? true : false; } } class BubbleSorter { static public void Sort(object [] sortArray, CompareOp gtMethod) { for (int i=0 ; i<sortArray.Length ; i++) { for (int j=i+1 ; j<sortArray.Length ; j++) { if (gtMethod(sortArray[j], sortArray[i])) { object temp = sortArray[i]; sortArray[i] = sortArray[j]; sortArray[j] = temp; } } } } }} 如何让窗体的标题栏不变成灰色? 这段代码看这怪怪得,能帮我改改吗!! Crystalreport水晶报表如何加入FORM中自定义的字段 请教一个跨库查询的问题 C#中线程问题? 一个很奇怪的问题,想尽办法也不行 return SqlCmd.ExecuteScalar时,它的方法返回类型是什么啊。。。 c#winform中想实现类似qq那种鼠标放在好友的头像上,旁边显示出来一个资料框 请教:OleDbCommand的Parameters的用法 sql多表联合多条件模糊查询 MSChart20Lib如何加载? 请教一个关于菜单制作的问题
{
delegate bool CompareOp(object lhs, object rhs); class MainEntryPoint
{
static void Main()
{
Employee [] employees =
{
new Employee("Karli Watson", 20000),
new Employee("Bill Gates", 10000),
new Employee("Simon Robinson", 25000),
new Employee("Mortimer", (decimal)1000000.38),
new Employee("Arabel Jones", 23000),
new Employee("Avon from 'Blake's 7'", 50000)};
CompareOp employeeCompareOp = new CompareOp(Employee.RhsIsGreater);
BubbleSorter.Sort(employees, employeeCompareOp); for (int i=0 ; i<employees.Length ; i++)
Console.WriteLine(employees[i].ToString());
Console.ReadLine();
}
} class Employee // : object
{
private string name;
private decimal salary; public Employee(string name, decimal salary)
{
this.name = name;
this.salary = salary;
} public override string ToString()
{
return string.Format(name + ", {0:C}", salary);
} public static bool RhsIsGreater(object lhs, object rhs)
{
Employee empLhs = (Employee) lhs;
Employee empRhs = (Employee) rhs;
return (empRhs.salary > empLhs.salary) ? true : false;
}
} class BubbleSorter
{
static public void Sort(object [] sortArray, CompareOp gtMethod)
{
for (int i=0 ; i<sortArray.Length ; i++)
{
for (int j=i+1 ; j<sortArray.Length ; j++)
{
if (gtMethod(sortArray[j], sortArray[i]))
{
object temp = sortArray[i];
sortArray[i] = sortArray[j];
sortArray[j] = temp;
}
}
}
}
}
}