C# sort函数怎么用

比如我想给一个类的对象数组按照类的一个属性的大小进行排序,应该怎么用,比较器怎么写... 比如我想给一个类的对象数组按照类的一个属性的大小进行排序,应该怎么用,比较器怎么写 展开
 我来答
Raiuy
推荐于2016-11-10 · TA获得超过2916个赞
知道大有可为答主
回答量:2210
采纳率:0%
帮助的人:900万
展开全部
internal class Item : IComparable<Item>
{
public string Id { get; set; }
public int Count { get; set; }

public int CompareTo(Item other)
{
return this.Count.CompareTo(other.Count); // 按照Count属性排序
}
}
艳阳高照的午后
推荐于2016-11-28 · TA获得超过1万个赞
知道大有可为答主
回答量:1.2万
采纳率:97%
帮助的人:5009万
展开全部
  一、sort()是c++、java里对数组的元素进行排序的方法,包含于头文件algorithm。
  返回值:
  对数组的引用。请注意,数组在原数组上进行排序,不生成副本。
  说明:
  如果调用该方法时没有使用参数,将按字母顺序对数组中的元素进行排序,说得更精确点,是按照字符编码的顺序进行排序。要实现这一点,首先应把数组的元素都转换成字符串(如有必要),以便进行比较。
  如果想按照其他标准进行排序,就需要提供比较函数,该函数要比较两个值,然后返回一个用于说明这两个值的相对顺序的数字。比较函数应该具有两个参数 a 和 b,其返回值如下:
  若 a 小于 b,在排序后的数组中 a 应该出现在 b 之前,则返回一个小于 0 的值。
  若 a 等于 b,则返回 0。 (此时不排序)
  若 a 大于 b,则返回一个大于 0 的值。
  程序示例:
  在本例中,我们将创建一个数组,并按字母顺序进行排序:
  <script type="text/javascript">var arr = new Array(6)arr[0] = "George"arr[1] = "John"arr[2] = "Thomas"arr[3] = "James"arr[4] = "Adrew"arr[5] = "Martin"document.write(arr + "<br />")document.write(arr.sort())</script>
  输出:
  George,John,Thomas,James,Adrew,MartinAdrew,George,James,John,Martin,Thomas

  二、partial_sort 是C++STL中的函数
  函数原型有:
  partial_sort(beg,mid,end)
  partial_sort(beg,mid,end,comp)
  函数作用:
  对mid-beg个元素进行排序,也就是说,如果mid-beg等于42,则该函数将有序次序中的最小值元素放在序列中
  的前42个位置。partial_sort完成之后,从beg到mid(但不包括mid)范围内的元素时有序的,已排序范围内没有
  元素大于mid之后的元素。未排序元素之间的次序是未指定的。
  程序示例:

  #include <vector>
  #include <iterator>
  #include <iostream>
  #include <algorithm>
  #include <functional>
  #include <cstdlib>
  #include <time.h>
  using namespace std;
  int rand_int()
  {
  return rand()%100;
  }
  void print(vector<int> &v,const char* s)
  {
  cout<<s<<endl;
  copy(v.begin(),v.end(),ostream_iterator<int>(cout," "));
  cout<<endl;
  }
  bool cmp(int &a, int &b)
  {
  if(a>b)
  return true;
  return false;
  }
  class compare{
  public:
  bool operator()(const int &a,const int &b)
  {
  if(a<b)
  return true;
  return false;
  }
  };
  int main()
  {
  srand(time(NULL));
  vector<int> v;
  generate_n(back_inserter(v),10,rand_int);
  print(v,"产生10个随机数");
  partial_sort(v.begin(),v.begin()+4,v.end());
  print(v,"局部递增排序");
  partial_sort(v.begin(),v.begin()+4,v.end(),cmp);
  print(v,"局部递减排序");
  partial_sort(v.begin(),v.begin()+4,v.end(),compare());
  print(v,"局部递增排序");
  return 0;
  }
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Zy_try
2012-06-04 · TA获得超过291个赞
知道小有建树答主
回答量:848
采纳率:0%
帮助的人:190万
展开全部
类的对象数组.OrderBy(d=>d.Id);
请百度Linq
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式