C尖锐的通用列表存储和管理项目集合是一个例行编程任务。几乎每个应用程序都必须处理具有共同特征的一组数据。这组数据可以是登录网站的用户配置文件,来自数据库表或简单内存对象的记录。为了处理这些数据集,.NET Framework包含通常称为集合的特殊类。

想要学习C#的基础知识?采取此介绍性课程

这些集合用于存储和管理数据集。.NET Framework中有两种类型的集合:位于System.collections.generic命名空间中的旧非通用集合.Collections.generic命名空间。

什么是通用列表(列表)?

通用列表是System.Collections.Generic命名空间中可用的许多通用集合之一,并且最广为人知,最广为人知,它可以基于索引查询集合的能力。在技​​术术语中,写入通用列表被称为列表其中t是此集合可以存储的项目的类型。列表 Collection分别实现非通用和通用ILIST和ILIST 接口。List 接口还实现了IEnumable 接口。列表可以通过LINQ查询查询。

有关LINQ的更多信息,请查看本课程

实例化列表

实例化或创建列表的对象是一个简单的任务。您只需指定通用列表可以存储的项目的类型和变量的名称。然后,您可以调用类型列表的构造函数将内存分配给变量。列表的构造函数将重载以在对象定义期间接受元素。在以下示例中,已经实例化了名为“国家”的字符串类型字符串的通用列表,并在实例化期间在其中添加了一些国家/地区名称。

list 国家= new list {“美国”,“英国”,“加拿大”,“澳大利亚”,“法国”,“德国”};

但是,您也可以在不添加元素的情况下实例化上面的列表。在这种情况下,将在稍后添加元素。

例如,您可以使用以下代码实例化字符串列表:

列表国家=新列表();

将元素添加到列表

添加和插入是将元素添加到列表的两个基本方法。但是,您还可以通过AddRange和Insertrange方法添加一系列元素。添加和插入方法之间的差异是添加和AddRange方法在列表末尾添加元素,而插入和inserrange方法在指定索引处开始添加元素。以“范围”结尾的方法将元素数组作为参数,并立即添加它们。

以下示例,演示了这四种方法的使用。

列表国家=新列表();

国家.ADD(“美国”);

国家.Addrange(New [] {“英国”,“加拿大”,“澳大利亚”});

CILIRNES.NERSERT(1,“法国”);

Cirencition.Insertrange(3,New [] {“德国”,“中国”,“俄罗斯”});

添加方法首先添加“USA”,然后Addrange将添加“英国”,“加拿大”和“澳大利亚”。但是,INSERT方法将在第一个索引处添加“法国”,因为“1”已作为指定索引的第一个参数传递。“法国”将取代“英国”和“法国”之后的所有元素都将向右转移一个指数。类似地,当用启动索引3调用inserrange时,元素将从元素“加拿大”占用的索引开始。如果执行上述代码,则列表将包含以下订单的元素:美国,法国,英国,德国,中国,俄罗斯,加拿大和澳大利亚。

对更多列表功能感兴趣?试试这个课程

从列表删除元素

从列表删除元素就像添加元素一样简单。列表类型为此目的包含三种基本方法。删除方法只需将元素作为参数,并从列表中删除匹配元素。如果列表中不存在该元素,则删除返回false。removeat方法从指定索引中删除元素。Removerange需要两个参数:首先是删除元素的起始索引,第二个是要删除的元素数。在以下示例中解释了这三种方法。

list 国家= new list {“美国”,“英国”,“加拿大”,“澳大利亚”,“法国”,“德国”};

CORINANDS.REMOVE(“英国”);

CILILASE.REMOVEAT(1);

国家/地区.Removerange(1,2);

在上面的示例中,删除(“英国”)方法将从列表中删除“英国”。然后,删除(1)将从列表中删除“加拿大”,因为在删除“英国”后,“加拿大”将在第一款指数。雷弗兰(1,2)将移除“澳大利亚”和“法国”,因为它们将在“加拿大”被删除后的索引1开始的前两个元素。

通过LINQ枚举列表元素

通用列表列表实现了IEnumable 界面,它使其能够通过Foreach循环启列,这是最简单的方法来枚举集合。以下示例说明了这一点:

list 国家= new list {“美国”,“英国”,“加拿大”,“澳大利亚”,“法国”,“德国”};

foreach(string in in国家)

{

console.writeline(续);

}

收藏的真正力量伴随着,可以通过LINQ查询来查询它们。例如,您可以使用Linq运算符“在其中”以查找以其名称的“A”以“A”结尾的所有国家。这与LINQ查询运算符非常容易做到,并且已在下一个示例中解释。

list 国家= new list {“美国”,“英国”,“加拿大”,“澳大利亚”,“法国”,“德国”};

Ienumable endingwitha = Coundation.where(c => c.endswith(“a”,stringcomparison.ordinalignorecase))))));

foreach(String in indingwitha)

{

console.writeline(续);

}

对于上面的代码片段工作,必须导入System.Linq命名空间,因为“其中”纯粹是LINQ运算符。Lambda表达式作为参数传递给“其中”运算符。此Lambda表达式实际上基于应筛选的列表表示条件。“其中”运算符返回接口类型的对象IEnumable ,然后可以用于查询元素,如上次示例所示。上述示例的结果将是“美国”,“加拿大”和“澳大利亚”,因为这些是以“A”结束的元素。

在列表中使用orderby linq运算符

使用linq运算符的另一个例子是orderby运算符,该操作员根据lambda表达式指定的条件排序列表的元素。以下示例演示了这一概念。

list 国家= new list {“美国”,“英国”,“加拿大”,“澳大利亚”,“法国”,“德国”};

Ienumable OrderedColl = Cirencition.OrderBy(C => C.Length);

foreach(String in in Orderedcoll)

{

console.writeline(续);

}

在这里,已在“国家”集合上呼吁orderby,并指定为参数的谓词说明根据升序订购集合。输出将是集合中的所有元素,从“英国”开始为第一个元素(具有最小长度的元素),并以“澳大利亚”为最后一个元素(长度最大的元素)。

在C#中了解有关通用列表和LINQ运算符的更多信息,检查这个详细的课程。

C#中的顶级课程

用于初学者的#.NET
里克菲利普斯
4.4 (1,263)
完成C#Unity Game Developer 3D
Ben Tristem,Rick Davidson,Gamev.TV团队
4.7 (26,828)
畅销书
C#中间:类,接口和OOP
Mosh Hamedani.
4.6 (23,135)
畅销书
RPG核心作战创造者:学习中级Unity C#编码
Ben Tristem,Rick Davidson,Sam Pattuzzi,Gamev.TV团队
4.7 (8,490)
C#高级主题:准备技术访谈
Mosh Hamedani.
4.5 (15,119)
完成C#MasterClass
Denis Panjuta,Tutorials.eu by Denis Panjuta
4.5 (12,024)
C#和.NET中的设计模式
Dmitri Nesteruk.
4.4 (7,102)
畅销书
C#开发人员:使用Visual Studio双倍编码速度
Mosh Hamedani.
4.5 (2,647)
畅销书
使用C#和.NET学习并行编程
Dmitri Nesteruk.
4.5 (2,035)
畅销书
Unity C#脚本:完成C#以获得Unity Game开发betwayapp下载安装
Raja Biswas,Charger Games
4.5 (1,388)
畅销书

更多C#课程

C#学生也会学习

赋予你的团队。引领行业。

通过Udemy为Business获取组织的在线课程和数字学习工具库的订阅。

请求演示