C# 集合及集合内排序 问题 速求

声明一个集合例如:list<T>list=newList<>(不知道对不对哦)怎么向集合内添加数据?list.add??(具体代码忘记了)然后用什么方法可以对集合list... 声明一个集合例如:list<T> list=new List<>(不知道对不对哦)
怎么向集合内添加数据?list.add??(具体代码忘记了)
然后用什么方法可以对集合list 内的数据进行从小到大的排序?
怎样获得最小的那个数据(~~~~(>_<)~~~~ 好笨啊……)
展开
 我来答
小林子LWL
推荐于2016-08-01 · 知道合伙人餐饮行家
小林子LWL
知道合伙人餐饮行家
采纳数:57 获赞数:16160
河南科技大学在校本科生

向TA提问 私信TA
展开全部
  C#中常用到的集合都有一个默认的sort方法,这个方法可以进行默认排序。

  但是如果这些集合中的元素是自定义的类,那么这个默认的sort可能就不准确了。

  文章中使用到的命名空间是system,接口是 IComparable 和 IComparer。

  sort的默认无参数的比较方式,我个人认为是IComparable中的CompareTo函数。

  抄写书上的两个例子来辅助记忆:

  [csharp] view plaincopy
  class Person : IComparable
  {
  public int Age { get; set; }
  public string Name { get; set; }
  
  public int CompareTo(object obj)
  {
  if (!obj.GetType().Equals(this.GetType()))
  throw new Exception("");
  else
  {
  Person person = obj as Person;
  return this.Age - person.Age;
  }
  }
  }
  [csharp] view plaincopy
  class PersonComparerName : IComparer
  {
  public static IComparer Default = new PersonComparerName();
  
  public int Compare(object x, object y)
  {
  if (x is Person && y is Person)
  return Comparer.Default.Compare((x as Person).Name, (y as Person).Name);
  else
  throw new Exception("");
  }
  }
  如果在集合中添加的全是Person对象,这个集合名称为list,那么sort方法:

  list.sort(),这个方法将使用Person中的CompareTo方法,通过年龄来对比

  list.sort(PersonComparerName.Default),这个方法将使用Person中的Compare方法,通过名字来对比。

  

  另外List<Type>,这个东西居然可以用来继承。。。。以前都不知道的,不过感觉意义不大。

  sort方法还可以使用第三种方式来排序,但是第三种方式的排序需要另外写一个函数方法。

  [csharp] view plaincopy
  public int compareSort(Point x, Point y)
  {
  if (x.X > y.X)
  return 1;
  else if (x.X < y.X)
  return -1;
  
  return 0;
  }
  [csharp] view plaincopy
  Comparison<Point> sorterX = new Comparison<Point>(compareSort);
  list.Sort(sorterX);
  这样就可以调用了。
ahker534
2011-06-15 · TA获得超过319个赞
知道小有建树答主
回答量:289
采纳率:0%
帮助的人:310万
展开全部
1. 先看什么类型的数据,是float 还是double,int
2.定义,比如 List <int> list = new List<int>
3.1 list.Sort().它有一个默认排序。查看文档说明
3.2 如果想自己排序 list.Sort(IComparision), 先定义一个继承比较接口的类,作为参数就可以了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
希明洁01I
推荐于2016-08-30
知道答主
回答量:13
采纳率:0%
帮助的人:7万
展开全部
list<int> list1 = new list<int>();
for (int i = 0; i < 10; i++) //输入10~1
{
list1.Add(10 - i);
}
list1.Sort(); //排序
int min = list1.Min(); //输出最小值
for (int i = 0; i < list1.Count; i++) //显示
{
Console.Write("{0} ",list1[i]);
}
Console.WriteLine("\n最小值是:{0}",min);

多上微软的MSDN上看看,在网上也能搜到一大堆~
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
vwenye
2011-06-15 · TA获得超过4985个赞
知道大有可为答主
回答量:1510
采纳率:0%
帮助的人:841万
展开全部
List有sort方法的
要自己给类型T定义一个比较的规则
然后调sort方法就好了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
知己知真心中5094
2011-06-15
知道答主
回答量:36
采纳率:0%
帮助的人:20.5万
展开全部
回答问题,为了完成任务。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式