`
zxlyecf2
  • 浏览: 133197 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

对一个集合按对象不同属性进行排序

    博客分类:
  • C#
阅读更多

对于某个集合,我们需要对其按对象不同属性进行排序,对于在查询数据时遇到这样的情况,一些sql语句就能解决,当然我们也可以把数据查出来自己经过循环判断之后也能实现,今天这里介绍一种比较简单的方法,在定义对象时,只需要实现IComparable接口,去重写一下里面的CompareTo方法就可以了,如果希望有更强大的功能,可以参考我以前写的http://zxlyecf2.iteye.com/blog/1977948;对于习惯使用Linq的实现起来就跟简单了

 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace CustomListTest.Students
{
    public class Student : IComparable<Student>
    {
        public Student(string n, string g, int i)
        {
            name = n;
            gender = g;
            id = i;
        }

        public string name
        {
            get;
            set;
        }

        public string gender
        {
            get;
            set;
        }

        public int id
        {
            get;
            set;
        }

        public int CompareTo(Student other)
        {
            //name降序,id升序,若要改变顺序只需修改一下other.name和name的前后顺序
            if (other.name.CompareTo(name) == 0)
            {
                return id.CompareTo(other.id);
            }
            else
            {
                return other.name.CompareTo(name);
            }
        }
    }
}

 

    Student songchao = new Student("SongChao", "Man", 100150);
            Student wuxing = new Student("WuXing", "Women", 100121);
            Student songchao2 = new Student("SongChao", "Women", 100130);
            Student aa = new Student("aa", "Women", 100133);
            Student aa2 = new Student("aa", "Women", 100130);

            List<Student> students = new List<Student>();
            students.Add(songchao);
            students.Add(wuxing);
            students.Add(songchao2);
            students.Add(aa);
            students.Add(aa2);

            foreach (Student student in students)
            {
                Console.WriteLine("Name  " + student.name + " ID  " + student.id);
            }
            Console.WriteLine("");

            students.Sort();
            foreach (Student student in students)
            {
                Console.WriteLine("Name  " + student.name + " ID  " + student.id);
            }

            ////使用Linq更简单实现
            //var ss = from u in students orderby u.name descending, u.id ascending select u;
            //foreach (Student student in ss)
            //{
            //    Console.WriteLine("Name  " + student.name + " ID  " + student.id);
            //}
            Console.Read();

 

0
0
分享到:
评论

相关推荐

    List集合按照对象中某个属性排序通用工具类(按对象中某属性排序)

    在开发中,我们可能会遇到,我们会根据不同情况对一个List集合进行排序操作,为了方便List集合根据对象中的某一个属性进行排序,开发了此工具类:

    JAVA 对象数组按照多个属性进行排序

    总结一下,当需要对Java对象数组按多个属性排序时,我们可以: 1. 实现`Comparator`接口并自定义`compare()`方法。 2. 使用lambda表达式或方法引用来创建`Comparator`实例,使代码更加简洁。 3. 对于数组,使用`...

    java List中对象多属性排序及各属性排序设置

    本文将深入探讨如何在Java的List中对包含多个属性的对象进行排序,并且支持动态设置每个属性的排序方式。这个功能的实现是通过泛型和自定义比较器(Comparator)来完成的,对于复杂的数据排序需求具有很高的灵活性。...

    Java对集合中的对象排序

    对集合中的对象进行排序,例如:List中存放了User对象,则可根据User对象的某一个属性进行顺序or倒序的排序

    java 按对象属性排序

    在Java编程中,按对象属性排序是一个常见的需求,特别是在数据处理和数据分析的场景下。这里我们探讨的主题是如何根据对象的属性进行排序,结合提供的`Simple.java`和`User.java`文件,我们可以假设这是一个关于...

    java版本List中对象多属性排序.rar

    在Java编程中,对List集合中的对象进行多属性排序是一项常见的任务。这通常涉及到自定义比较逻辑,以满足复杂的数据排序需求。在这个“java版本List中对象多属性排序.rar”压缩包中,我们可能找到了一个关于如何在...

    List集合对象中按照不同属性大小排序的实例

    在对List集合对象排序时,我们可以使用Collections.sort()方法,该方法可以根据不同的比较器对List集合对象进行排序。在本例中,我们使用匿名内部类实现Comparator接口,并重写compare方法,以便根据Person对象的...

    根据对象属性将对象排序

    ### 根据对象属性将对象排序 在编程领域中,我们经常会遇到需要对一组对象进行排序的需求。这种排序可以基于单个属性或者多个属性来进行。本文档将详细讲解如何通过对象的一个或多个属性来实现对象的排序,并支持...

    List 对象属性排序

    ### List对象属性排序知识点 #### 一、概述 在Java编程中,经常需要对`List`集合中的对象按照特定属性进行排序。传统的方法是在每个实体类中重写`Comparable`接口或提供比较器(`Comparator`),这不仅增加了代码...

    List中保存对象,按对象中某一属性排序【含程序源码】

    这篇博客“List中保存对象,按对象中某一属性排序【含程序源码】”恰好提供了这样的解决方案。下面我们将深入探讨这个主题。 首先,让我们理解列表(List)和对象排序的基本概念。列表是Java集合框架的一部分,它允许...

    集合对象排序

    在编程领域,集合对象排序是一项基础且重要的任务,它涉及到数据结构和算法的知识。当我们处理包含多个元素的数据集,如数组、列表或集合时,排序能够帮助我们快速查找、分析和展示信息。本文将深入探讨如何对对象...

    基于ArrayList的对象多属性值排序

    本主题将深入探讨如何对ArrayList中的对象按照多个属性进行排序。 首先,我们来看`Student.java`类,它通常会包含一个或多个属性,比如学生的姓名(name)、学号(id)或其他信息。例如: ```java public class ...

    C#实体类和实体类集合的自动排序

    通过设置其DataSource属性为实现了上述接口的实体类集合,用户可以直接在界面上进行排序操作。 实现这些接口的过程可能涉及到以下步骤: 1. 创建实体类,定义相应的属性。 2. 创建实体类集合类,实现IBindingList...

    java中进行集合排序

    在Java编程中,对集合(如`List`)中的对象进行排序是一项常见的操作。本文将详细介绍如何根据对象的特定属性来实现升序或降序排序。 #### 标题:Java中进行集合排序 该标题表明文章的主题是关于Java语言中如何对...

    Java实现储存对象并按对象某属性排序的几种方法示例

    以上三种方法都能满足按对象属性排序的需求,选择哪种取决于具体的应用场景。如果需要保持集合的有序性,`TreeSet`是很好的选择;如果数据存储在数组中,`Arrays.sort()`简洁高效;而`List`的使用者则可以利用`...

    利用集合进行排序,VB6.0源代码编写

    在这个例子中,我们使用了冒泡排序算法对集合进行排序,这只是一个基础示例。实际应用中,可能需要根据实际需求选择更高效的排序算法,如快速排序或归并排序。同时,`CompareItems`函数可以根据具体的数据类型进行...

    学生集合排序

    在Java编程中,对学生集合进行排序是一个常见的需求,特别是在处理教育数据或管理学生信息时。本文将详细探讨如何实现这个过程,重点在于重写`hashCode`和`equals`方法,以及利用`Collections`工具类和自定义比较器...

Global site tag (gtag.js) - Google Analytics