首页 新闻 搜索 专区 学院

一个asp.net电子商务网站(dashcommerce)的商品排序源码解释?

0
悬赏园豆:20 [已解决问题] 解决于 2009-01-13 19:41

ProductCollection products = this.pagedDataSource.DataSource as ProductCollection;
switch (this.sortBy)
{
case "Cheapest":
products.Sort(delegate (Product p1, Product p2) {
return p1.OurPrice.CompareTo(p2.OurPrice);
});
return;

case "Expensive":
products.Sort(delegate (Product p1, Product p2) {
return p2.OurPrice.CompareTo(p1.OurPrice);
});
return;

case "TitleAsc":
products.Sort(delegate (Product p1, Product p2) {
return p1.Name.CompareTo(p2.Name);
});
return;

case "TitleDesc":
products.Sort(delegate (Product p1, Product p2) {
return p2.Name.CompareTo(p1.Name);
});
return;

case "Newest":
products.Sort(delegate (Product p1, Product p2) {
return p2.CreatedOn.CompareTo(p1.CreatedOn);
});
return;

case "Oldest":
products.Sort(delegate (Product p1, Product p2) {
return p1.CreatedOn.CompareTo(p2.CreatedOn);
});
return;
}
}
这是dashcommerce中的代码。我不明白那个return返回的都是个整数。要这些个case是怎样实现的排序?



问题补充: delegate (Product p1, Product p2){} 这是一个委托吧,那这不是只对两条记录进行了比较吗?
杨佳霖的主页 杨佳霖 | 初学一级 | 园豆:0
提问于:2009-01-13 09:29
< >
分享
最佳答案
0

对于products.Sort(delegate (Product p1, Product p2) {
return p1.CreatedOn.CompareTo(p2.CreatedOn);
});
你就要查看一下Sort的声明了,它接收的是一个方法(委托或Lambda等)return的是委托中的返回。你就查看一下Sort的声明与使用吧

GUO Xingwang | 老鸟四级 |园豆:3885 | 2009-01-13 09:48
其他回答(2)
0

products.Sort(

汤包 | 园豆:25 (初学一级) | 2009-01-13 09:45
0

QuickSort

用的是委托,通过比较2个对象,进行排序

James.Ying | 园豆:1472 (小虾三级) | 2009-01-13 17:28
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册