c# List 能按照List中的对象某个属性排序吗

yanglingjun 2008-06-08 02:51:43
List 中Set 自己定义的对象,该对象中有个 sort 属性,

我该怎么做才能按照这个sort 对List 里的对象进行排序呢

在线等.....
...全文
20536 39 打赏 收藏 转发到动态 举报
写回复
用AI写文章
39 条回复
切换为时间正序
请发表友善的回复…
发表回复
无敌小李 2012-05-22
  • 打赏
  • 举报
回复
这个提示缺少using,应该调用什么呢
yuchenln 2012-03-16
  • 打赏
  • 举报
回复
mark。。。。。。
lgs3810 2012-03-08
  • 打赏
  • 举报
回复
list.Sort((left,right)=>left.sort.CompareTo(right.sort));
hgghgyt 2011-11-16
  • 打赏
  • 举报
回复
上面发错了
例如pair定义是List<WorkItem>>,workitem是我的一个对象,我想按照workitem的一个属性排序,如下
var sortedWorkItems = from works in pair orderby works.duration descending select pair;
hgghgyt 2011-11-16
  • 打赏
  • 举报
回复
一句话
pair定义是List<WorkItem>>,workitem是我的一个对象,我想按照workitem的一个属性排序,如下
var sortedWorkItems = from works in pair.Value orderby works.duration descending select pair.Value;
ylhyh 2011-07-25
  • 打赏
  • 举报
回复
#12楼 vwxyzh给出的才是正解.
bbqbin 2011-03-15
  • 打赏
  • 举报
回复
king8970举的例子不错,很全面
triplegunsxp 2011-02-27
  • 打赏
  • 举报
回复
学习了。
zagj11 2011-02-11
  • 打赏
  • 举报
回复
我想看答案啊
miaoguangzhen 2010-10-11
  • 打赏
  • 举报
回复
king8970的答案很好,帮了我的忙了,谢谢!
MUTOUYIHAO 2010-08-19
  • 打赏
  • 举报
回复
看不了回复?
qingchaofan 2010-08-05
  • 打赏
  • 举报
回复
我要看看
gogozgliang 2010-05-22
  • 打赏
  • 举报
回复
我想看答案啊
zhtan 2010-03-17
  • 打赏
  • 举报
回复
我想看看答案
zhanxp 2009-11-27
  • 打赏
  • 举报
回复
List <info> list = ...
list = list.Sort(delegate(Info x, Info y) { return x.sort - y.sort; });

这个是可以用的,是整个排序,不是比较两个对象;
hongyuflying 2009-09-25
  • 打赏
  • 举报
回复
我要看我要看答案
king8970 2009-05-24
  • 打赏
  • 举报
回复
//Book 类
public class Book
{
public Book(string inname, string inauthor, string inpublisher, int inprice)
{
this.Name = inname;
this.Author = inauthor;
this.Publisher = inpublisher;
this.Price = inprice;
}

private string name;

public string Name
{
get { return name; }
set { name = value; }
}
private string author;

public string Author
{
get { return author; }
set { author = value; }
}
private string publisher;

public string Publisher
{
get { return publisher; }
set { publisher = value; }
}
private int price;

public int Price
{
get { return price; }
set { price = value; }
}
}

//比较器类

public class Icp:IComparer<Book>
{
//按书名排序
public int Compare(Book x, Book y)
{
return x.Name.CompareTo(y.Name);
}
}

public class IcpPrice : IComparer<Book>
{
//按价格排序
public int Compare(Book x, Book y)
{
return x.Price.CompareTo(y.Price);
}
}


//main方法
static void Main(string[] args)
{
List<Book> list = new List<Book>();
Book b1, b2, b3, b4;
b1 = new Book("《绝代双骄》", "古龙", "中国长安出版社", 50);
b2 = new Book("《鹿鼎记》", "金庸", "人民文学出版社", 120);
b3 = new Book("《三国演义》", "罗贯中", "中州古籍出版社", 200);
b4 = new Book("《西游记》", "吴承恩", "晨光出版社", 80);
list.Add(b1);
list.Add(b2);
list.Add(b3);
list.Add(b4);

//按书名升序
Console.WriteLine("/////////////按书名升序/////////////");
list.Sort(new Icp());
foreach(Book book in list)
{
Console.WriteLine(book.Name+book.Author+book.Publisher+book.Price);
}
Console.WriteLine("////////////////////////////////////");

//按价格降序序
Console.WriteLine("/////////////按书名升序/////////////");
list.Sort(new IcpPrice());

foreach (Book book in list)
{
Console.WriteLine(book.Name + book.Author + book.Publisher + book.Price);
}
Console.WriteLine("////////////////////////////////////");

Console.Read();
}
tootto 2008-06-09
  • 打赏
  • 举报
回复
[Quote=引用 20 楼 yanglingjun 的回复:]
我想查找其中某的对象该如何查找呢
[/Quote]

你是指通过对象的某个的属性来查找吗?
vwxyzh 2008-06-08
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 yanglingjun 的回复:]
引用 12 楼 vwxyzh 的回复:
引用 5 楼 yanglingjun 的回复:
List 里有个 Info 对象, info 里有个 sort 的int 属性, 我如何按照sort大小排列Info对象.

List <info> list = ...
list.Sort(delegate(Info x, Info y) { return x.sort - y.sort; });
// vs2008的话可以这样写:
// list.Sort((x, y) => x.sort - y.sort);


你这是两个对象的比较吧 , 整个List 可以用吗 ? 比如说我调用一下这个方法,就已经按照Info中的s…
[/Quote]
放到vs里面跑一下不就知道了
lz看一下List<T>的Sort(Comparison<T>)方法的定义吧
yanglingjun 2008-06-08
  • 打赏
  • 举报
回复
我想查找其中某的对象该如何查找呢
加载更多回复(19)

110,545

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧