C# 对 list<T>中的数据按某字段的大小进行排序。

如T为
student()
{
string name;
int age;
}
按age大小排序

List<TestMode> lists = new List<TestMode>();
lists.Add(new TestMode() { name="a",age=10});
lists.Add(new TestMode() { name = "a0", age = 10 });
lists.Add(new TestMode() { name = "a2", age = 12 });
lists.Add(new TestMode() { name = "a1", age = 11 });
lists.Add(new TestMode() { name = "a4", age = 14 });

var temps = from t in lists orderby t.age descending select t;
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-01-17
象下面这样

public class student
{
public string name;
public int age;
}
void SortStudents()
{
var students = new List<student>();
students.Sort((student1, student2) => student1.age - student2.age);
}追问

第一我是C#,第二,我LIST有数据了

追答

假设你的List 数组名称为 students。那么按如下进行排序
students.Sort((student1, student2) => student1.age - student2.age);

这个就是C#的语法。或是象下面这样写你能不能看懂

void SortStudents(List students)
{
students.Sort(Comparison);
}
private int Comparison(student student1, student student2)
{
return student1.age - student2.age;
}

追问

但是我的LIST里面有N条数据了怎么弄。。。还有我想要按STRING来排序

追答

你的List有一个变量名的吧。比如叫****
那么就是 ****.Sort(Comparison); 就可以了。

string是指按name来排序吧。 象下面这样。如果两个都要给他们分别取不同的函数名就可以了
private int Comparison(student student1, student student2)
{
return string.Compare(student1.name, student2.name);
}

本回答被提问者采纳
第2个回答  2013-01-17
你可以先用Split进行分割然后在按照ASCII码进行排序
第3个回答  2013-01-17
没有现成的,需要自己实现比较规则吧(java是这样的)