C# List介绍及具体用法

C# List介绍及具体用法

List是什么?

List是C#语言中的一种基本的集合类型,位于System.Collections.Generic命名空间下。

List是一种动态数组,与普通数组相比,List可以进行动态扩容,并且可以存储任意类型的数据。List提供了一系列操作元素的方法,例如添加、删除、排序等,是C#中常用的集合类型之一。

List的创建与初始化

List的创建与初始化通常使用构造函数或对象初始化器,具体实现如下:

// 创建一个int类型的List,初始容量为5
List<int> list1 = new List<int>(5);

// 创建一个包含初始元素的List,可以使用对象初始化器
List<string> list2 = new List<string>()
{
    "apple", "banana", "cherry"
};

上面的代码中,List<int> list1 表示创建一个 int 类型的 List5 表示该 List 的初始容量。

List<string> list2 表示创建一个 string 类型的 List,使用对象初始化器对其进行初始化,其中包含三个元素 "apple", "banana", "cherry"

List的常用操作

添加元素

关于List添加元素的方法,有以下几种:

// 添加单个元素
list.Add(value);

// 添加多个元素
list.AddRange(collection);

// 添加一个序列
list.InsertRange(index, collection);

其中,list.Add(value) 表示向列表尾部添加一个元素 value

list.AddRange(collection) 表示向列表尾部添加多个元素,这些元素来自于集合 collection

list.InsertRange(index, collection) 表示在指定位置 index 处向列表中添加一些元素(来自于 collection 中的某个序列)。

删除元素

关于List删除元素的方法,有以下几种:

// 删除单个元素
list.Remove(value);

// 删除指定位置元素
list.RemoveAt(index);

// 删除指定条件元素
list.RemoveAll(predicate);

// 删除一定区间内的元素
list.RemoveRange(index, count);

其中,list.Remove(value) 表示从列表中删除一个元素 value

list.RemoveAt(index) 表示从列表中删除指定位置的元素。

list.RemoveAll(predicate) 表示删除满足特定条件的所有元素。

list.RemoveRange(index, count) 表示删除列表中指定区间 [index, index + count - 1] 内的所有元素。

排序

List提供了多种排序方法,如下所示:

// 升序排序(使用默认的比较器)
list.Sort();

// 升序排序(使用自定义的比较器)
list.Sort(comparison);

// 降序排序(使用默认的比较器)
list.OrderByDescending(x => x).ToList();

其中,list.Sort() 表示升序排列列表元素,使用默认的比较器进行比较。

list.Sort(comparison) 表示升序排列列表元素,使用自定义的比较器来进行比较。

list.OrderByDescending(x => x).ToList() 表示降序排列列表元素。

示例说明

示例1:向List中添加及删除元素

using System;
using System.Collections.Generic;

class Program
{
    static void Main(string[] args)
    {
        List<string> list = new List<string>()
        {
            "apple", "banana", "cherry"
        };

        list.Add("durian");
        list.Remove("banana");

        foreach (string fruit in list)
        {
            Console.WriteLine(fruit);
        }
    }
}

上述代码展示了如何向List中添加及删除元素。首先创建一个包含三个字符串元素的List,然后调用Add方法添加一个新增元素和Remove方法删除一个元素,最后输出修改后的List。

输出结果:

apple
cherry
durian

示例2:对List进行排序

using System;
using System.Collections.Generic;

class Program
{
    static void Main(string[] args)
    {
        List<int> list = new List<int>()
        {
            5, 3, 7, 2, 8
        };

        list.Sort();

        foreach (int number in list)
        {
            Console.WriteLine(number);
        }
    }
}

上述代码展示了如何对List进行排序。首先创建一个包含五个整型元素的List,然后调用Sort方法进行排序,最后输出排序后的List。

输出结果:

2
3
5
7
8

以上是C# List介绍及具体用法的攻略,希望对你有所帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C# List介绍及具体用法 - Python技术站

(0)
上一篇 2023年6月1日
下一篇 2023年6月1日

相关文章

  • ASP.NET MVC生成静态页面的方法

    生成静态页面是网站优化中常用的手段之一,能够有效提高网站的访问速度和用户体验。在ASP.NET MVC中,我们可以使用以下两种方法来生成静态页面。 方法一:使用HtmlHelper的Action方法 步骤一:添加路由规则 首先,在RouteConfig.cs文件中,添加一个路由规则,用于匹配需要生成静态页面的 action。 routes.MapRoute(…

    C# 2023年5月31日
    00
  • JavaScript ESLint插件保姆级使用教程

    JavaScript ESLint插件保姆级使用教程 1. 什么是ESLint ESLint是一个可扩展的JavaScript代码检查工具。它可以检查代码中的语法错误,提供一致的代码风格,并可以检测代码中的潜在问题。ESLint 可以配置以满足您的特定需求。ESLint内置了很多规则,您也可以通过使用插件来添加自定义规则。 2. 安装ESLint 2.1 安…

    C# 2023年5月15日
    00
  • Untiy Shader实现纹理贴图滚动

    让我来详细讲解一下Unity Shader实现纹理贴图滚动的完整攻略。 简介 在游戏中,经常会出现需要让纹理贴图进行滚动的场景。比如,在一个街机游戏中,需要让背景贴图进行不断的水平或垂直移动,模拟出角色奔跑的效果。那么该如何实现这个效果呢?下面就让我们来看一下Unity Shader如何实现纹理贴图滚动。 Shader语言 在Unity Shader中,我们…

    C# 2023年6月7日
    00
  • 如何判断 .NET Core 应用程序以管理员身份运行的

    如何判断 .NET Core 应用程序以管理员身份运行 在本攻略中,我们将深入讲解如何判断 .NET Core 应用程序以管理员身份运行,并提供两个示例说明。 判断 .NET Core 应用程序以管理员身份运行的方法 以下是判断 .NET Core 应用程序以管理员身份运行的方法: 使用WindowsIdentity.GetCurrent方法获取当前用户的W…

    C# 2023年5月17日
    00
  • C#8.0默认接口实现的详细实例

    下面是关于C#8.0默认接口实现的详细攻略: 什么是C#8.0的默认接口实现? 默认接口实现是C#8.0中引入的新功能,它允许我们为接口的成员提供默认的实现,这样所有实现该接口的类都可以直接继承这些默认实现,而不需要再次手动实现这些接口成员。 如何使用C#8.0的默认接口实现? 我们使用关键字 default 来定义接口的默认成员实现。 例如,假设我们有一个…

    C# 2023年6月7日
    00
  • C#连接Informix数据库的问题

    使用C#连接Informix数据库的过程可以分为以下几个步骤: 步骤一:安装Informix客户端SDK Informix客户端SDK包括ODBC和 .NET 数据提供程序等。可以从IBM官网下载对应版本的SDK,安装并配置。 步骤二:创建Informix数据库连接字符串 在C#中,可以通过连接字符串来与Informix数据库建立连接。根据个人需要可以选择使…

    C# 2023年5月15日
    00
  • C#中efcore-ShardingCore呈现“完美”分表

    我会详细讲解“C#中efcore-ShardingCore呈现‘完美’分表”的完整攻略,并包含两条示例说明。 ShardingCore 什么是ShardingCore? ShardingCore是一个基于EF Core的分表库,它提供了完美的分表功能,欢迎大家去GitHub上了解更多信息。 ShardingCore分表的实现方式 ShardingCore实现…

    C# 2023年5月31日
    00
  • C# 各种导出的方法总结

    C#是一门比较流行的编程语言,它常被用于Windows平台的软件开发。C#代码开发完毕后,如何将代码打包成程序或者发布给其他开发者使用呢?这就要用到C#中的导出方法。 本篇文章将为大家总结C#中各种导出方法,包括命令行工具和IDE插件等,以及每种方法的优缺点,希望能够帮助大家更好地理解和使用C#。 1. 命令行工具 1.1. .NET Core SDK .N…

    C# 2023年5月15日
    00
合作推广
合作推广
分享本页
返回顶部