C# List的排序问题
来源:互联网 发布:在线讲课软件 编辑:程序博客网 时间:2024/06/05 10:49
在C#中,可以List来代替C++中Vector。
对于LIST的排序,需要使用到Sort()方法,为了让排序方式按照我们自己的想法进行,
可以通过IComparable接口重写CompareTo方法来实现。
例子:
有一个包含人名,年龄等信息的LIST,我们需要根据年龄做从大到小或者从小到大的排序,做法如下:
publicclass MyInfo:IComparable<MyInfo>//定义MyInfo类,并继承IComparable
{
public int age;
public double value;
public string name;
public int CompareTo(MyInfo obj)//重写排序方法,本例中按年龄排序
{
int iresult=-1;
if(this.age==obj.age)
{
iresult=0;
}
else if(this.age.CompareTo(obj.age)<0)//从小到大排序,如需要从大到小则用>即可
{
iresult=1;
}
else
{
iresult=-1;
}
return iresult;
}
}
调用部分:
List <MyInfo> mystr=newList<MyInfo>();
int []agearray=newint[]{20,30,60,14,16,42,34,45,22,31};
string []names=newstring[]{"A","B","C","D","E","F","G","H","I","J"};
for(int i=0;i<10;i++)//在List中放入10个数据
{MyInfo stem=newMyInfo();
stem.name=names[i];
stem.age=agearray[i];
stem.value=i/3;
mystr.Add(stem);
}
for(int i=0;i<10;i++)//显示一下排序前的效果
{
lbLog.Items.Add("Name:"+mystr[i].name+", age:"+mystr[i].age.ToString()+", Score:"+mystr[i].value.ToString());
}
lbLog.Items.Add("现在进行排序......");
mystr.Sort();
//mystr.s
for(int i=0;i<10;i++)//显示一下排序后的效果
{
lbLog.Items.Add("Name:"+mystr[i].name+", age:"+mystr[i].age.ToString()+", Score:"+mystr[i].value.ToString());
}
运行结果:
- C# List的排序问题
- C# list的排序
- C#的List排序
- list的排序问题
- C# 中list的排序
- C#中List的排序
- C#中List的排序
- C#中List的排序用法(Sort)
- C#中List的排序用法(Sort)
- C#中List的排序用法(Sort)
- C#中List的排序用法(Sort)
- C#中List的排序(Sort)
- C#中List的排序(Sort)
- C#中List<>的排序使用
- C# List排序
- C# 排序 List.Sort
- C# List排序Sort
- C# List<T>排序
- 快速排序 快速搞定
- jquery中ul > li是什么意思?
- MVC框架
- 手机端实现打印功能
- yum本地源搭建
- C# List的排序问题
- java封装
- MYSQL 使用大全
- 网站压力测试工具Webbench介绍
- 【Ajax技术】JQuery的应用与高级调试技巧
- AMH使用介绍
- cocos2dx的渲染树
- <汇编语言程序设计> 课堂笔记
- OpenCV 3 CUDA小测试