List 基本用法总结

合集下载

mybatislist参数

mybatislist参数

mybatislist参数MyBatis中的List参数在使用MyBatis进行数据库操作时,我们经常会遇到需要传递List 类型参数的情况。

这些参数可以是用于查询条件的多个值,也可以是需要批量插入或更新的数据集合。

在本文中,我们将讨论如何在MyBatis中使用List参数,并介绍一些常见的用法和注意事项。

一、基本用法在MyBatis中,我们可以在Mapper接口中定义方法,使用@Param注解来传递List类型的参数。

例如,我们有一个User实体类,其中包含了id、name和age等属性。

我们可以定义一个查询方法,根据多个id查询对应的用户信息:```javaList<User> getUserListByIds(@Param("ids") List<Integer> ids); ```在Mapper.xml中,可以使用foreach标签来遍历List参数,并生成对应的SQL语句:```xml<select id="getUserListByIds" resultType="User">SELECT * FROM userWHERE id IN<foreach collection="ids" item="id" open="(" separator="," close=")">#{id}</foreach></select>```这样,我们就可以通过传递一个包含多个id的List参数来查询对应的用户信息了。

二、批量插入和更新除了查询,我们还可以使用List参数进行批量插入和更新操作。

假设我们有一个UserMapper接口,其中定义了一个批量插入用户的方法:```javavoid insertUserList(List<User> userList);```在Mapper.xml中,可以使用foreach标签来遍历List参数,并生成对应的插入语句:```xml<insert id="insertUserList" parameterType="java.util.List">INSERT INTO user (id, name, age)VALUES<foreach collection="list" item="user" separator=",">(#{user.id}, #{}, #{user.age})</foreach></insert>```这样,我们就可以通过传递一个包含多个User对象的List参数来批量插入用户了。

list的短语

list的短语

list的短语
list的短语是指一种用于表示清单、列举或分类事物的短语结构。

它常用于书写、口头表达以及编程中。

以下是一些常见的list的短语:
1. "首先,其次,最后":这些短语常用于列举事物或说明顺序。

例如,首先,
我们需要考虑预算;其次,我们需要制定计划;最后,我们开始执行。

2. "例如"或"举例来说":这些短语通常用于给出具体的例子来支持你的观点或
解释某事物。

例如,瑜伽有很多好处,例如可以提高灵活性和减轻压力。

3. "总结"或"概括":这些短语用于总结或概括之前所列举的信息或论点。

例如,在这篇文章中,我们列举了几种有效的学习方法,总结起来就是多样化的学习可以提高学习效果。

4. "除此之外"或"此外":这些短语常用于在列举事物时添加额外的内容或提供
其他相关信息。

例如,我们需要购买食材,此外还要考虑饮料和甜点。

5. "分为"或"分类为":这些短语用于将事物分成不同的类别或组别。

例如,运
动可以分为有氧运动和力量训练。

6. "列出"或"详细列举":这些短语用于明确要求列举出所有相关的事物或细节。

例如,你需要列出所有项目的开支,包括成本、人力和材料。

需要注意的是,在使用list的短语时,我们应该根据不同的语境和目的,选择
适当的短语来确保表达清晰明了,并且避免重复或冗长。

c语言中list的用法

c语言中list的用法

C语言中list的用法1.简介在C语言中,l is t是一种常用的数据结构,用于存储和管理多个元素。

它类似于数组,但具有更强大的灵活性和功能。

本文将介绍C语言中l i st的使用方法,包括创建、添加、删除和遍历等操作。

2.创建lis t要使用l is t,首先需要定义一个结构体来表示l is t的节点,节点中包含数据元素和指向下一个节点的指针。

然后,使用指向该结构体的指针来表示整个l is t。

以下是创建l is t的基本代码:t y pe de fs tr uc tN ode{i n td at a;s t ru ct No de*n ex t;}N od e;t y pe de fs tr uc t{N o de*h ea d;}L is t;3.添加元素要向li st中添加元素,可以使用以下代码:v o id ad dE le me nt(Li s t*li st,i nt ne wDa t a){N o de*n ew No de=(Nod e*)ma ll oc(s iz eof(No de));n e wN od e->d at a=new D at a;n e wN od e->n ex t=NUL L;i f(l is t->h ea d==NU L L){l i st->he ad=n ew Nod e;}e ls e{N o de*c ur re nt No de=l is t->h ea d;w h il e(cu rr en tN ode->n ex t!=N UL L){c u rr en tN od e=cu rre n tN od e->n ex t;}c u rr en tN od e->n ext=ne wN od e;}}4.删除元素要从li st中删除元素,可以使用以下代码:v o id re mo ve El em ent(Li st*l is t,in tta r ge t){ N o de*c ur re nt No de=l is t->h ea d;N o de*p re vN od e=NUL L;w h il e(cu rr en tN ode!=N UL L){i f(c ur re nt No de->d a ta==ta rg et){i f(p re vN od e==N ULL){l i st->he ad=c ur ren t No de->ne xt;}e ls e{p r ev No de->ne xt=cu r re nt No de->ne xt;}f r ee(c ur re nt No de);b r ea k;}p r ev No de=c ur re ntN o de;c u rr en tN od e=cu rre n tN od e->n ex t;}}5.遍历lis t要遍历l is t中的所有元素,可以使用以下代码:v o id tr av er se Li st(L is t*li st){N o de*c ur re nt No de=l is t->h ea d;w h il e(cu rr en tN ode!=N UL L){p r in tf("%d",cu rre n tN od e->d at a);c u rr en tN od e=cu rre n tN od e->n ex t;}}6.示例下面是一个使用l ist的示例:#i nc lu de<s td io.h>#i nc lu de<s td li b.h>t y pe de fs tr uc tN ode{i n td at a;s t ru ct No de*n ex t;}N od e;t y pe de fs tr uc t{N o de*h ea d;}L is t;v o id ad dE le me nt(Li s t*li st,i nt ne wDa t a){N o de*n ew No de=(Nod e*)ma ll oc(s iz eof(No de)); n e wN od e->d at a=new D at a;n e wN od e->n ex t=NUL L;i f(l is t->h ea d==NU L L){l i st->he ad=n ew Nod e;}e ls e{N o de*c ur re nt No de=l is t->h ea d;w h il e(cu rr en tN ode->n ex t!=N UL L){c u rr en tN od e=cu rre n tN od e->n ex t;}c u rr en tN od e->n ext=ne wN od e;}}v o id re mo ve El em ent(Li st*l is t,in tta r ge t){N o de*c ur re nt No de=l is t->h ea d;N o de*p re vN od e=NUL L;w h il e(cu rr en tN ode!=N UL L){i f(c ur re nt No de->d a ta==ta rg et){i f(p re vN od e==N ULL){l i st->he ad=c ur ren t No de->ne xt;}e ls e{p r ev No de->ne xt=cu r re nt No de->ne xt; }f r ee(c ur re nt No de);b r ea k;}p r ev No de=c ur re ntN o de;c u rr en tN od e=cu rre n tN od e->n ex t;}}v o id tr av er se Li st(L is t*li st){N o de*c ur re nt No de=l is t->h ea d;w h il e(cu rr en tN ode!=N UL L){p r in tf("%d",cu rre n tN od e->d at a);c u rr en tN od e=cu rre n tN od e->n ex t;}}i n tm ai n(){L i st my Li st;m y Li st.h ea d=NU LL;a d dE le me nt(&my Lis t,5);a d dE le me nt(&my Lis t,10);a d dE le me nt(&my Lis t,15);r e mo ve El em en t(&my L is t,10);t r av er se Li st(&myL i st);r e tu rn0;}7.总结使用li st可以轻松地管理多个元素,实现灵活的数据存储和操作。

ireport组件list用法

ireport组件list用法

iReport组件list的用法1.介绍在iR ep ort中,l is t是一种非常常用的组件,用来显示重复数据集。

它可以在报表中多次循环显示相同的元素,比如表格、子报表等。

本文将介绍iR ep or t中lis t组件的基本用法和常见技巧。

2.创建一个l i s t要创建一个l is t组件,可以按照以下步骤进行操作:1.打开iR ep or t,并创建一个新的报表模板。

2.在报表模板的工具箱中,找到li st组件并拖动到报表中。

3.设置li st的数据源,可以是一个S QL查询、Ja va Be an集合等。

4.在l is t组件中添加需要显示的元素,比如文本框、图片等。

3.设置lis t的属性l i st组件有一些重要的属性需要设置,以满足不同的需求。

以下是一些常用属性的介绍:D a t a S o u r c eE x p re ss i o n-:指定l is t的数据源表达式,可以是一个S Q L查询、Ja va Be an集合的字段等。

C o n n e c t i o n E x p re ss i o n-:指定连接表达式,用于在子报表或者嵌入式表格中引用其他数据源。

P r i n t W h e n E x p r es si o n-:设置一个表达式,用于控制l ist是否需要打印。

如果表达式的值为f al se,则li s t不会显示。

S t r e t c h T y p e-:设置l is t在报表中的自动拉伸方式,包括“R el at iv eT oB an dH e ig ht”和“R el at i ve To Ta ll es tO bje c t”两种选项。

E l e m e n t S t r e t c hT yp e-:设置l is t中的元素的自动拉伸方式,包括“R el at iv eT oB an dH e ig ht”和“R el at i ve To Ta ll es tO bje c t”等选项。

windows中list的用法

windows中list的用法

windows中list的用法在Windows中,List是一个数据结构,用于存储一组有序的元素。

在Windows中,可以使用List来存储和操作数据。

以下是一些常见的在Windows中使用List的操作:1. 创建List:可以使用List类的构造函数来创建一个空的List,例如:```List<int> numbers = new List<int>();```这将创建一个名为`numbers`的List对象,用于存储整数类型的数据。

2. 添加元素:可以使用Add()方法将元素添加到List中,例如:```numbers.Add(10);numbers.Add(20);```这将添加整数10和20到`numbers`列表中。

3. 访问元素:可以使用索引来访问List中的元素,索引从0开始。

例如,要访问第一个元素,可以使用以下代码:```int firstNumber = numbers[0];```4. 删除元素:可以使用Remove()方法从List中删除指定的元素,例如:```numbers.Remove(10);```这将从`numbers`列表中删除值为10的元素。

5. 修改元素:可以直接将新值赋给List中的指定元素,例如:```numbers[1] = 30;```这将将第二个元素的值更改为30。

6. 获取列表长度:可以使用Count属性获取List中的元素数量,例如:```int count = numbers.Count;```这将返回`numbers`列表中元素的数量。

7. 遍历列表:可以使用foreach循环遍历List中的所有元素,例如:```foreach (int num in numbers){Console.WriteLine(num);}```这将逐个打印出`numbers`列表中的所有元素。

这些是在Windows中使用List的一些常见操作。

list的get方法

list的get方法

list的get方法一、概述列表(list)是Python中最常用的数据类型之一,它可以容纳多个元素,并且可以根据索引访问和操作这些元素。

list的get方法是用来获取列表中指定索引位置上的元素的方法。

本文将详细介绍list的get方法的用法和功能。

二、list的get方法的基本用法列表的get方法的基本语法如下所示:list.get(index, default)其中: - index为要获取的元素所在的索引位置,如果索引超出列表范围则会引发IndexError错误。

- default是一个可选参数,表示当索引超出范围时返回的默认值,如果不提供该参数,则会引发IndexError错误。

下面是一个简单的示例,演示了list的get方法的基本用法:fruits = ['apple', 'banana', 'orange']print(fruits.get(0)) # 输出: 'apple'print(fruits.get(1)) # 输出: 'banana'print(fruits.get(2)) # 输出: 'orange'print(fruits.get(3, 'grape')) # 输出: 'grape'在上面的示例中,我们创建了一个包含三个水果名称的列表fruits。

通过调用fruits的get方法,并传入相应的索引,我们可以获取到列表中对应索引位置上的元素。

当索引超出范围时,我们可以通过传入默认值,来避免引发IndexError 错误。

三、list的get方法的高级用法除了基本的用法之外,list的get方法还支持一些高级的用法,让我们一起来了解一下。

1. 获取多个元素list的get方法可以一次性获取多个元素,只需要将多个索引位置作为参数传入。

返回的结果会以一个新的列表形式返回。

linux ls命令的用法

linux ls命令的用法

linux ls命令的用法LS(List)命令是Linux操作系统中最基本和最常用的命令之一,用于列出指定目录下的文件和子目录。

它可以帮助用户快速查看目录中的文件列表,并提供一些附加选项以满足用户的不同需求。

本文将详细介绍LS命令的用法,包括常用选项和参数,以及一些实用的技巧和案例。

一、基本用法1. 使用ls命令最简单的方式是在命令行中输入“ls”后回车,此时将会列出当前目录中的文件和子目录。

2. 如果需要查看指定目录下的文件列表,可以在ls命令后面添加目录路径来实现。

例如,“ls /home”将会列出家目录下的文件和子目录。

3. 若想查看隐藏文件(以点开头的文件),可以使用“ls -a”命令。

例如,“ls -a /home”将包括所有文件和子目录,包括隐藏文件。

二、常用选项1. -l:使用长格式(long format)输出,将会显示文件的详细信息,包括权限、所有者、文件大小、修改日期等。

2. -t:按照修改时间倒序排列文件。

使用“ls -lt”命令将根据最后修改时间将文件列表显示在最前面。

3. -r:以相反的顺序显示文件。

使用“ls -r”命令可以实现将文件从最后一个显示到第一个。

4. -S:根据文件大小(以字节为单位)进行排序,最大的文件将会显示在最前面。

使用“ls -S”命令可以实现这一功能。

5. -h:以人类可读的文件大小格式显示,即以具有单位的形式进行显示(如1K、10M等)。

使用“ls -lh”命令可以实现这一功能。

6. -d:列出目录本身,而不是目录下的内容。

使用“ls -d”命令可以只显示目录的信息。

7. color=auto:自动根据文件类型显示不同的颜色。

默认情况下是关闭的,可以通过将其加入到ls命令后开启。

(注:颜色显示需要终端支持)三、常用参数1. -R:递归列出指定目录下的所有子目录和文件。

使用“ls -R”命令可以列出目录树中的所有文件和子目录。

2. -a:显示所有文件和子目录,包括以点开头的隐藏文件。

list列表用法

list列表用法

list列表用法在编程中,list是一种常用的数据结构,可以容纳多个元素,并按照它们在列表中的顺序进行排列。

以下是关于list列表用法的介绍:1. 创建列表:使用方括号 [] 来创建一个列表,并在其中添加元素,多个元素之间使用逗号分隔。

例如:[1, 2, 3, 4, 5]。

2. 访问列表元素:通过索引值(从0开始)来访问列表中的元素。

例如,对于列表[1, 2, 3, 4, 5],要访问第一个元素,使用list_name[0]。

3. 列表元素的增加与删除:- 使用append()函数在列表末尾添加元素。

例如,使用list_name.append(6)将6添加到列表的末尾。

- 使用insert()函数在指定位置插入元素。

例如,使用list_name.insert(2, 7)将7插入到索引为2的位置。

- 使用remove()函数删除指定元素。

例如,使用list_name.remove(3)将列表中的第一个3删除。

- 使用del语句删除指定位置的元素。

例如,使用del list_name[0]将列表中的第一个元素删除。

4. 列表的切片:可以使用切片来获取列表的一部分。

通过指定起始索引和结束索引(不包含在切片结果中),可以获得指定范围内的元素。

例如,list_name[1:4]将返回包含索引1到3的元素的切片。

5. 列表的长度和排序:使用len()函数获取列表中元素的个数。

例如,len(list_name)将返回列表中元素的个数。

使用sort()函数对列表进行升序排序。

例如,list_name.sort()将列表元素按照升序重新排列。

6. 列表的遍历:使用for循环遍历列表的每个元素。

例如,for item in list_name: 可以访问列表中的每个元素,其中item是一个用于迭代列表的临时变量。

总结:list列表是一种灵活且功能强大的数据结构,可用于存储和处理各种类型的数据。

通过掌握列表的创建、访问、增加与删除、切片、长度和排序等基本用法,您将能够更好地利用列表来解决编程任务中的问题。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

C#泛型列表List<T>基本用法总结朱先忠示例代码如下:namespace SampleListT{class Program{static void Main(string[] args){//using System.Collections.Generic; 命名空间中的List<T>//using System.Collections;命名空间中的ArrayList//都实现了列表集合,一个是泛形集合,一个是非泛型的//下面我们将Person对象加到集合中Person p1 = new Person( "aladdin" , 20 );Person p2 = new Person("zhao", 10);Person p3 = new Person("jacky", 40);//如果不制定list的容器大小,默认是0,只要有元素加入是,会自动扩展到4,如果第5个元素加入时,就变成了8,第9个加入,就成16//可以看出,总是成倍的增长,扩展时要重新开辟内存,这样会影响效率,如果事先知道元素个数,或者可能个数,最好给个尽量大的权衡值//我们加入3个元素,设容器大小为4.注:设为4不是指只能放4个元素,如果超出,一样也会成倍扩展,这样做只是为了尽量扩展带来的开销List<Person> list = new List<Person>(4);list.Add(p1);list.Add(p2);list.Add(p3);//本方法是清除多于的没有用的内存空间,例:如果开辟大小为100,而我们只用了4个,其余的放着,是不是很浪费//本方法调用时会检查元素个数是不是占到了容器大小的90%以上,如果是,则不进行回收.list.TrimExcess();//ArrayList方法与List<>用法一样,不同的是,它是对象集合,参数是Object这样会有装箱拆箱的可能,尽量用List<>//本处不再做演示// 1 初始化集合器// C#3.0开始,提供了初始化功能,但是并没有反应到IL代码中,在IL中,一样也是把个转化成ADD方法来调用List<int> l2 = new List<int>() { 1 ,2 ,3 ,4 ,5 };// 2 添加元素AddRange() 本方法可以一次性添加一批对象List<Person> lists = new List<Person>(10);//参数是一个必须可能跌代的对象,也可是数组list.AddRange( new Person[] { new Person( "aladdin" ,20) , new Person("zhao",6)});//构造传入批量参数,与AddRange效果一样List<Person> mylist = new List<Person>(new Person[] { new Person( "aladdin" ,20) , newPerson("zhao",6)});// 3 插入元素// 使用Insert()方法,可以在指定位置插入元素// 例我们在1位置插入则最后变成了aladdin jacky zhao..插入意思就是,这个位我占了,以前占这位的和他之后的,通通往后移一位mylist.Insert( 1 , new Person( "jacky" , 88 ));foreach (Person p in mylist){Console.WriteLine();}// 4 访问元素// ArrayList 与List<T>都是提供了索引器来访问的Console.WriteLine( "----------------访问元素------------------------");for (int i = 0; i < mylist.Count; i++){Console.WriteLine(mylist[i].name);}//还可以使用foreach跌代器来实现,些处不再举例//使用Foreach方法//public delegate void Action<T>(T obj);例用委托做为参数//些处我们用呀妈Day表达式实现Console.WriteLine( "-----------------用ForEach方法输出------------------------");mylist.ForEach( param => Console.WriteLine() ) ;// 5删除元素//删除元素可以使用RemoveAt()直接传入索引器值//将第一个元素直接删除mylist.RemoveAt(0);//也可以将要删除的元素传给Remove方法List<Person> lists2 = new List<Person>(10);Person per1 = new Person( "aladdin" , 100 );Person per2 = new Person("zhao", 100);Person per3 = new Person("jacky", 100);lists2.Add(per1);lists2.Add(per2);lists2.Add(per3);lists2.Remove(per3);Console.WriteLine( "-------删除后的元素---------");foreach (Person per in lists2){Console.WriteLine();}//从结果可以看出名称为Jacky的元素被删除了//下面说一下Remove方法的删除过程// 用IndexOf方法确定出对象的索引,然后按索引删除// 在IndexOf方法内,首先检查元素是不是实现了IEquatable接口,如果是,就调用这个接口中的Equals方法// 如果没有实现,则调用Object中的Equals方法比较元素(也就是址址比较)// 以上我们删除per3,很显明显一个地址,所以被删除了// 下面我们改装了Person ,实现了IEquatable<Person>,在比较方法中,始终返回false , 则per3会比较失败,不会被删除// 结果3个都在// 如果要删除对象,最好使用索引直接删除,因为Remove方法经历了一系列过程后,最后才按索引删除!// RemoveRange()删除一个范围// 第一个参数开始位置第二个个数//lists2.RemoveRange( 1 , 2 );//Console.WriteLine( "批量删除后----------------");//foreach (Person per in lists2)//{// Console.WriteLine();//}// 6 搜索// 搜索有很多种方式,可以使用IndexOf LastIndexOf FindIndex FindLasIndex Find FindLas ,如果只是查看元素存不,可以使用Exists()方法// IndexOf() 方法需要将一个对象做参数, 如果打到,就返回本元素在集合中的索引,如果找不到就返回-1,IndexOf还可以使用IEquatable接口来比较元素List<Person> ls3 = new List<Person>(10);Person person1 = new Person("aladdin", 100);Person person2 = new Person("zhao", 100);Person person3 = new Person("jacky", 100);ls3.Add(person1);ls3.Add(person2);ls3.Add(person3);// 为了使用默认的地址比较,我们把Person的接口暂时去掉int index = ls3.IndexOf(person3);Console.WriteLine( "per3 的索引:" + index); //2// 还可以指定搜索范围从第3个开始,范围长度是1int index2 = ls3.IndexOf(person3,2,1);Console.WriteLine(index2);//IEquatable比较方法前面已经写过,不再举例// FindIndex()方法是用来搜索带有一定特性的元素// 例用委托做参数public delegate bool Predicate<T>(T obj);int index3 = ls3.FindIndex(param => .Equals("jacky"));Console.WriteLine( index3 );// 2// FindLastIndex是从后面查第一个出现的元素,因为我们这里没有重复元素,所以体现不出他只查找一个,就停下来的效果int index4 = ls3.FindLastIndex(p => .Equals("aladdin"));Console.WriteLine(index4);// Find方法与FindIndex方法用法一样,不同的是,它返回的是元素本身Person ppp = ls3.Find( p => .Equals("jacky")) ;Console.WriteLine(ppp);// 如果要查找所有的匹配元素,而不是找到第一个就停下来,就使用FindAll方法// 我们查找所有年纪等于100的对象,3个都符合List<Person> newList = ls3.FindAll(p => p.age == 100);Console.WriteLine( "----------查找所有---------");foreach (Person p in newList){Console.WriteLine();}// 7 排序// List可以例用Sort方法排序,实现算法是快速排序// 本方法有好几个重载//public void Sort(); //只对元素实现了IComparable才能使用这个方法,如果实现了则,可以直接调用一次sort之后,就排好序了//public void Sort(Comparison<T> comparison); //我们的Person并没有实现那个接口,所以要用泛型委托当参数的方法//public void Sort(IComparer<T> comparer); //泛型接口当参数public delegate intComparison<T>(T x, T y);//public void Sort(int index, int count, IComparer<T> comparer); //可以指定范围List<Person> ls4 = new List<Person>(10);Person person4 = new Person("aladdin", 100);Person person5 = new Person("zhao", 33);Person person6 = new Person("jacky", 44);ls4.Add(person4);ls4.Add(person5);ls4.Add(person6);ls4.Sort(MyComparFunc);Console.WriteLine( "-------------排序后的-------------");foreach (Person p in ls4){Console.WriteLine(+ p.age );}Console.WriteLine( "--------颠倒循序------------------");ls4.Reverse();foreach (Person p in ls4){Console.WriteLine(+ p.age);}// 8 类型转换//可以将集合中的元素转换成任意类型的元素,比如,我们要将集合中的Person转换成为Racer对象Racer只包含名字,没有年纪// public List<TOutput> ConvertAll<TOutput>(Converter<T, TOutput> converter);// public delegate TOutput Converter<TInput, TOutput>(TInput input); 委托参数List<Racer> ls5 = ls4.ConvertAll<Racer>((input) => new Racer()) ;Console.WriteLine( "-----------转换后的玩意--------");foreach (Racer r in ls5){Console.WriteLine();}// 9 只读集合// 在创建完集合以后,肯定是可读写的,如果不是,他就不能再添加新元素了,但是,如果是认为填充完毕,不要再做修改.// 可以使用只读集合,使用AsReadOnly方法() 返回ReadOnlyCollection<T>类型,它与List<>操作是一样的,但是一但有修改集合的操作,就会刨出异常// 他屏蔽了通常的ADD等方法ReadOnlyCollection<Racer> persss = ls5.AsReadOnly();Console.WriteLine("输出只读集合");foreach (Racer r in persss){Console.WriteLine();}Console.ReadLine();}//为了比较写的委托实现方法public static int MyComparFunc(Person p1, Person p2)if (p1.age == p2.age){return 0;}else if (p1.age > p2.age){return 1;}else{return -1;}}}//two helper classesclass Person//:IEquatable<Person>{public string name;public int age;public Person( string nam e , int age ){this.age = age;}////始终给一个False值//public bool Equals(Person other)//{// return false;//}}class Racer{public string name;public Racer(string name){}}}。

相关文档
最新文档