当前位置: 首页> 汽车> 车展 > 诚信企业查询系统_自主建站_网络运营团队_百度搜索百度

诚信企业查询系统_自主建站_网络运营团队_百度搜索百度

时间:2025/7/8 19:49:23来源:https://blog.csdn.net/TLlaile/article/details/148726399 浏览次数: 0次
诚信企业查询系统_自主建站_网络运营团队_百度搜索百度
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using xiketang.com.GenericList;namespace xiketang.com.ListDataShow
{public partial class FrmDgvList : Form{private List<Course> courseList = null;public FrmDgvList(){InitializeComponent();InitList();}public void InitList(){Course course1 = new Course();course1.CourseId = 10001;course1.CourseName = "C#面向对象中集合的应用";course1.ClassHour = 2;course1.Teacher = "常老师";//通过对象初始化器Course course2 = new Course { CourseId = 10002, CourseName = "SQLServer数据库开发", ClassHour = 5, Teacher = "常老师" };//通过有参数的构造方法创建对象Course course3 = new Course(10003, ".Net/C#全栈VIP课程", 200, "常老师");Course course4 = new Course(10004, ".Net/C#上位机VIP课程", 500, "常老师");Course course5 = new Course(10005, ".Net/C#高级进阶VIP课程", 300, "常老师");courseList = new List<Course>() { course1, course2, course3, course4, course5 };}private void btnShowData_Click(object sender, EventArgs e){this.dgvCourseList.DataSource = courseList;this.dgvCourseList.AutoResizeColumns();}//编号降序private void btnCourseIdDESC_Click(object sender, EventArgs e){courseList.Sort(new CourseIdDESC());this.dgvCourseList.Refresh();}//课时升序private void btnClassHourASC_Click(object sender, EventArgs e){courseList.Sort(new CourseClassASC());this.dgvCourseList.Refresh();}}
}using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace xiketang.com.GenericList
{/// <summary>/// 课程类/// </summary>public class Course : IComparable<Course>{public Course() { }public Course(int courseId, string courseName, int classHour, string teacher){this.CourseId = courseId;this.CourseName = courseName;this.ClassHour = classHour;this.Teacher = teacher;}public int CourseId { get; set; }//课程编号public string CourseName { get; set; }//课程名称public int ClassHour { get; set; }//课时public string Teacher { get; set; }//主讲老师//接口对应的比较方法(这个方法的签名,千万不要动)public int CompareTo(Course other){//return this.CourseId.CompareTo(other.CourseId);return other.CourseId.CompareTo(CourseId);//如果把this放到前面,表示按照升序排列,other放到前面就是按照降序排列}}class TestGenericList{#region 对象集合添加和删除的几种方式    public List<Course> CreateCourses(){Course course1 = new Course();course1.CourseId = 10001;course1.CourseName = "C#面向对象中集合的应用";course1.ClassHour = 2;course1.Teacher = "常老师";//通过对象初始化器Course course2 = new Course { CourseId = 10002, CourseName = "SQLServer数据库开发", ClassHour = 5, Teacher = "常老师" };//通过有参数的构造方法创建对象Course course3 = new Course(10003, ".Net/C#全栈VIP课程", 200, "常老师");Course course4 = new Course(10004, ".Net/C#上位机VIP课程", 500, "常老师");Course course5 = new Course(10005, ".Net/C#高级进阶VIP课程", 300, "常老师");//如果将前面的对象添加到数组中Course[] courseArray = new Course[5];courseArray[0] = course1;//如果我们创建的对象个数并不是固定的,想,能不能我们不限制数组中元素的个数呢?//集合:定义的时候,无需规定元素的个数。//泛型:表示一种程序特性,也就是我们在定义的时候,无需指定特定的类型,而在使用的时候,我们必须明确类型//应用:集合中、方法中、类中//表示:<T>//要求:添加到集合中的元素类型,必须和泛型集合定义时规定的数据类型完全一致//List<Course> courseList = new List<Course>();//courseList.Add(course1);//courseList.Add(course2);//courseList.Add(course3);//courseList.Add(course4);//courseList.Add(course5);// courseList.Add(10);//使用集合初始化器,将元素一次性的初始化到集合中List<Course> courseList = new List<Course>() { course1, course2, course3, course4, course5 };Course[] courseArray1 = new Course[] { course1, course2, course3, course4, course5 };//如果给我们一个数组,我们能不能把数组中的元素添加到集合中?List<Course> courseListFromArray = new List<Course>();courseListFromArray.AddRange(courseArray1);//集合能否转换到数组?Course[] courseArray2 = courseList.ToArray();//数组能否直接转换到集合?List<Course> courseList3 = courseArray2.ToList();//删除元素//Console.WriteLine("\r\n---------------------删除后元素列表------------------\r\n");//public bool Remove(T item);          //public int RemoveAll(Predicate<T> match);        //public void RemoveAt(int index);          //public void RemoveRange(int index, int count);//courseList.Remove(course3);//必须要掌握//courseList.RemoveAll(c => c.CourseId > 10002);//了解// courseList.RemoveAt(2);//courseList.RemoveRange(1, 2);// Console.WriteLine("集合中对象的总数:" + courseList.Count);return courseList;}#endregion#region 集合元素的遍历和快速查找//集合遍历的两种方式public void TraversalList1(List<Course> courseList){for (int i = 0; i < courseList.Count; i++){Console.WriteLine($"{courseList[i].CourseId}\t{courseList[i].CourseName}\t{courseList[i].ClassHour}\t{courseList[i].Teacher}");}}public void TraversalList2(List<Course> courseList){foreach (Course item in courseList){Console.WriteLine($"{item.CourseId}\t{item.CourseName}\t{item.ClassHour}\t{item.Teacher}");}}/// <summary>/// 集合快速查询方法(是我们VIP后期深入学习的时候详细讲解的)/// </summary>/// <param name="courseList"></param>public void QueryElements(List<Course> courseList){//集合查询方法1List<Course> result1 = courseList.FindAll(c => c.CourseId > 10003);//集合查询方法2var result2 = from c in courseList where c.CourseId > 10003 select c;var result3 = result2.ToList();}#endregion#region 集合元素排序public void ListOrder(){#region 值类型元素的排序Console.WriteLine("\r\n----------------------值类型元素排序------------------\r\n");List<int> ageList = new List<int> { 20, 19, 25, 30, 26 };ageList.Sort();//默认按照升序排列foreach (int item in ageList){Console.WriteLine(item);}ageList.Reverse();Console.WriteLine("-------------");foreach (int item in ageList){Console.WriteLine(item);}#endregion//对象集合元素排序(默认)Console.WriteLine("\r\n----------------------集合默认排序------------------\r\n");List<Course> courseList = CreateCourses();courseList.Sort();//以上Sort方法默认会报错的!所以在Course类中实现系统接口IComparable<Course>TraversalList1(courseList);//以上我们使用默认比较器进行排序,很不方便,如果我们需要多种排序,怎么办?//比较器接口:其实就是我们可以任意的指定对象属性排序,从而实现动态排序。//集合元素动态排序Console.WriteLine("\r\n----------------------集合动态排序------------------\r\n");//排序方法的定义: public void Sort(IComparer<T> comparer);courseList.Sort(new CourseIdASC());Console.WriteLine("-----------按照编号升序---------\r\n");TraversalList1(courseList);Console.WriteLine("\r\n-----------按照编号将序---------\r\n");courseList.Sort(new CourseIdDESC());TraversalList1(courseList);//其实上面我们的练习,我希望大家,能够自己写出来,但是更重要的是理解多态的原理,因为Sort这个重载的方法就是多态原理的一个应用。//我们后面深入学习架构开发等更高级的理论,技能,设计模式等,处处都在用多态!//通过上面的练习,我们发现实际应用中,还是有点麻烦的。大家如果跟着常老师深入系统学习VIP课程,会给大家讲解更好的方法。//高级阶级我们用的方法:这里先体验(了解)Console.WriteLine("\r\n--------后面高级课程中,使用LINQ实现排序------------");var list1 = from c in courseList orderby c.CourseId ascending select c;TraversalList1(list1.ToList());Console.WriteLine("\r\n--------后面高级课程中,使用扩展方法OrderByDescending实现降序------------");var list2 = courseList.OrderByDescending(c => c.CourseId);TraversalList1(list2.ToList());Console.WriteLine("\r\n--------后面高级课程中,使用扩展方法OrderBy实现升序序------------");var list3 = courseList.OrderBy(c => c.ClassHour);TraversalList1(list3.ToList());}#endregion}#region 自定义排序类:根据需要,添加对应个数的排序类/// <summary>/// 课程编号升序/// </summary>class CourseIdASC : IComparer<Course>{public int Compare(Course x, Course y){return x.CourseId.CompareTo(y.CourseId);}}/// <summary>/// 课程编号降序/// </summary>class CourseIdDESC : IComparer<Course>{public int Compare(Course x, Course y){return y.CourseId.CompareTo(x.CourseId);}}/// <summary>/// 课时升序/// </summary>class CourseClassASC : IComparer<Course>{public int Compare(Course x, Course y){return x.ClassHour.CompareTo(y.ClassHour);}}#endregion }
关键字:诚信企业查询系统_自主建站_网络运营团队_百度搜索百度

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: