iis服务器助手广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >c# List和Dictionary常用的操作
  • 569
分享到

c# List和Dictionary常用的操作

2024-04-02 19:04:59 569人浏览 泡泡鱼
摘要

目录一、List1.添加方法:2.删除方法:3.搜索方法:4.修改方法:5.排序方法:6.其它方法:二、Dictionary1.添加方法2.删除方法3.搜索方法4.修改方法5.排序方

本文主要汇总了在开发过程中,使用List和Dictionary常用的方法,例如增、删、改、查、排序等等各种常用操作。

在平时的开发过程中,List和Dictionary是我们经常使用到的数据结构,而且由于本人记性又差有些方法长时间不用就都忘了,所以总结出此博客,用于记录和分享一下关于这两种数据结构的使用方法。

一、List

首先对于这些内容最权威和完整介绍的地方就是微软的官方文档,里面全面且详细的介绍了Lits的所有属性及方法,经常查看官方文档是一个非常好的习惯。本文将会总结出在日常开发过程中相对常用的一些方法同时会配上示例。

1.添加方法:

Add(T)---将对象添加到List结尾处。

AddRange(IEnumerable<T>)---将指定集合的元素添加到List末尾。

Insert(int32,T)---将元素T插入到List指定索引处。

InsertRange(int32,IEnumerable<T>)---将集合中的元素插入到List的指定索引处。

2.删除方法:

Clear()---从List中移除所有元素。

Remove(T)--从List中移除特定对象的第一个匹配项。(请注意值类型与引用类型)

RemoveAll(Preaicate<T>)---移除与指定谓词所定义的条件相匹配的所有元素。例:


static void Main(string[] args)
        {
            List<test> a = new List<test>();
            for (int i = 0; i < 10; i++)
            {
                a.Add(new test(i, "张先生"));
            }

            a.RemoveAll(x => x.ID > 5);
        }

        public class test
        {
            public test(int a, string b)
            {
                ID = a;
                Name = b;
            }
            public int ID { get; set; }
            public string Name { get; set; }
        }

结果:删除掉了ID大于5的全部元素。

RemoveAt(Int32)---移除List的指定索引处的元素。

RemoveRange(Int32,Int32)---从List中移除一系列元素。

3.搜索方法:

对于List的搜索方法建议使用Linq查询表达式或者Lambda表达式的方式,可以参考博文:C# LINQ查询表达式用法对应LAMBDA表达式

IndexOf(T)---搜索指定的对象,并返回整个List中第一个匹配项从零开始的索引。

IndexOf(T,Int32)---搜索指定对象并返回List中指定索引到最后一个元素这部分元素中第一个匹配项的从零开始的索引。

IndexOf(T,Int32,Int32)---搜索指定对象并返回List中从指定索引开始并包含指定元素的这部分元素中第一个匹配项的从零开始索引。

Find(Preaicate<T>)---搜索与指定谓词所定义的条件相匹配的元素,并返回整个List中的第一个匹配元素。

FindAll(Preaicate<T>)---搜索与指定谓词定义的条件匹配的所有元素。

FindIndex(Preaicate<T>)---搜索与指定谓词所定义的条件相匹配的元素,并返回整个 List<T> 中第一个匹配元素的从零开始的索引。

FindIndex(Int32,Preaicate<T>)---搜索与指定谓词所定义的条件相匹配的元素,并返回 List<T> 中从指定索引到最后一个元素的元素范围内第一个匹配项的从零开始的索引。

FindIndex(In32,Int32,Preaicate<T>)---搜索与指定谓词所定义的条件相匹配的一个元素,并返回 List<T> 中从指定的索引开始、包含指定元素个数的元素范围内第一个匹配项的从零开始的索引。例:


static void Main(string[] args)
        {
            List<test> a = new List<test>();
            for (int i = 0; i < 10; i++)
            {
                a.Add(new test(i, "张先生"));
            }
            int res = a.FindIndex(x => x.ID == 3);
            Console.WriteLine(res);
        }

        public class test
        {
            public test(int a, string b)
            {
                ID = a;
                Name = b;
            }
            public int ID { get; set; }
            public string Name { get; set; }
        }

结果:控制台打印的结果为3。

4.修改方法:

对于当前List是支持通过索引的方式进行修改操作的,操作方式类似于数组

5.排序方法:

请参考博文C#LINQ查询表达式用法对应LAMBDA表达式

Sort()---使用默认比较器对整个 List<T> 中的元素进行排序。

对于List<T>类型的List进行排序,如果想要使用Sort()方法的话,可以通过匿名委托的方式实现,个人建议实现排序功能使用Linq的方式最好。对于Sort方法可以进行一下了解。请参考如下代码


public MainWindow()
        {
            InitializeComponent();

            List<test> a = new List<test>();

            a.Add(new test()
            {
                a = 1,
                b = ""
            });
            a.Add(new test()
            {
                a = 4,
                b = ""
            });
            a.Add(new test()
            {
                a = 2,
                b = ""
            });
            a.Add(new test()
            {
                a = 3,
                b = ""
            });
            a.Add(new test()
            {
                a = 9,
                b = ""
            });
            a.Add(new test()
            {
                a = 7,
                b = ""
            });
            a.Add(new test()
            {
                a = 6,
                b = ""
            });

            a.Sort((left, right) =>
            {
                if (left.a > right.a)
                    return 1;
                else if (left.a == right.a)
                    return 0;
                else
                    return -1;
            });
        }

        class test
        {
            public int a;
            public string b;
        }

通过以上方式可以实现用Sort方法对List<T>类型进行排序。

6.其它方法:

Exists(Predicate<T>)---确定 List<T> 是否包含与指定谓词定义的条件匹配的元素。

Contains(T)---确定某元素是否在 List<T> 中。

以上两个方法使用代码如下:


public MainWindow()
        {
            InitializeComponent();

            List<test> a = new List<test>();

            a.Add(new test()
            {
                a = 1,
                b = ""
            });

            a.Add(new test()
            {
                a = 4,
                b = ""
            });

            var aa = new test()
            {
                a = 55,
                b = "11"
            };
            a.Add(aa);

            var res1 = a.Exists(x => x.a == 55);
            var res2 = a.Contains(aa);
        }

        class test
        {
            public int a;
            public string b;
        }

运行结果,res1=true;res2=true

二、Dictionary

 介绍最完整详细的仍然是官方文档。

1.添加方法

 Add(TKEy,TValue)---将指定的键和值添加到字典中。

TryAdd(Tkey,TValue)---尝试将指定的键和值添加到字典中。

2.删除方法

Clear()---将所有键和值从 Dictionary<TKey,TValue> 中移除。

Remove(TKey)---从 Dictionary<TKey,TValue> 中移除所指定的键的值。

Remove(TKey,TVlue)---从 Dictionary<TKey,TValue> 中删除具有指定键的值,并将元素复制到 value 参数。

3.搜索方法

Item[TKey]---获取或设置与指定的键关联的值。

可以使用Where方法实现,代码如下:


Dictionary<string, int> a = new Dictionary<string, int>();
            a.Add("1", 1);
            a.Add("2", 2);
            a.Add("3", 3);
            a.Add("4", 4);
            var res = a.Where(x => x.Key == "3").ToDictionary(x=>x.Key,y=>y.Value);

运行结果res是字典类型"3",3

4.修改方法

Item[TKey]---获取或设置与指定的键关联的值。通常使用字典的Key来修改字典的Value

字典类型的Key一旦定义则无法修改,如果想修改只能删除重新添加。

5.排序方法

一般字典类型主要是使用Key来进行索引,所以对于字典这种类数据型进行排序是无意义的,所以字典本身也没有sort方法。

如果非要排序也是可以实现通过Linq即可实现,代码如下:


Dictionary<string, int> a = new Dictionary<string, int>();
            a.Add("4", 1);
            a.Add("1", 2);
            a.Add("3", 3);
            a.Add("5", 4);
           
            var res1 = a.OrderBy(x=>x.Key).ToDictionary(x => x.Key, x => x.Value);
            var res2 = a.OrderByDescending(x=>x.Key).ToDictionary(x => x.Key, x => x.Value);

运行结果res1和res2分别实现按照字典key的升序排序和降序排序。

6.其它方法

ContainsKey(TKey)---确定是否 Dictionary<TKey,TValue> 包含指定键。

ContainsKey(TValue)---确定 Dictionary<TKey,TValue> 是否包含特定值。

以上就是c# List和Dictionary常用的操作的详细内容,更多关于c# List和Dictionary的资料请关注编程网其它相关文章!

--结束END--

本文标题: c# List和Dictionary常用的操作

本文链接: https://www.lsjlt.com/news/123419.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • c# List和Dictionary常用的操作
    目录一、List1.添加方法:2.删除方法:3.搜索方法:4.修改方法:5.排序方法:6.其它方法:二、Dictionary1.添加方法2.删除方法3.搜索方法4.修改方法5.排序方...
    99+
    2024-04-02
  • 详解C#对Dictionary内容的通用操作
    目录一、实现效果1.1实现的功能1.2实现的功能效果图二、实现核心三、使用方法3.1引用命名空间3.2使用示例一、实现效果 1.1实现的功能 ①添加信息到字典中; ②根据键获取值; ...
    99+
    2024-04-02
  • C#对Dictionary内容的通用操作是什么
    这篇文章主要讲解了“C#对Dictionary内容的通用操作是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C#对Dictionary内容的通用操作是什么”吧!一、实现效果1.1实现的功...
    99+
    2023-07-02
  • Python中列表list常见操作
    主要涉及知识点列表是我们python里面最常见的数据类型,我们主要有以下的操作。1、索引2、切片3、追加4、删除5、长度6、循环 (也称遍历)7、包含8、嵌套例如定义列表:List2=['openstack','python','linux...
    99+
    2023-01-31
    常见 操作 列表
  • C#操作Word表格常见的操作
    本篇内容主要讲解“C#操作Word表格常见的操作”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C#操作Word表格常见的操作”吧!几种常见C#操作Word表格操作有哪些呢?让我们来看看具体的实例...
    99+
    2023-06-17
  • C++并查集常用操作
    并查集 是一种树型的数据结构,用于处理一些不相加集合的合并和查询问题。在使用中常常以森林来表示。 并查集也是用来维护集合的,和前面学习的set不同之处在于,并查集能很方便地同时维护很...
    99+
    2024-04-02
  • C#中常用的IO操作介绍
    在.Net 4.0中增加了一系列较为实用的IO功能,下面让我们来一起看一下吧: 1. Stream.CopyTo Stream.CopyTo在用于较小的Stream之间的拷贝时还是比...
    99+
    2024-04-02
  • c# list部分操作实现代码
    C# Linq获取两个List或数组的差集交集 复制代码 代码如下:List<int> list1 = newList<int>();list1.Add(1)...
    99+
    2022-11-15
    c# list
  • Java中,常用的List的五种声明并赋值操作
    目录 方式1、新手方式 方式2、使用Stream流方式 方式3、使用工具类为创建的List对象赋值, 方式4、创建静态集合 方式5、创建不可变集合        (要求JDK1.9 --- Java9版本及以上) 方式1、新手方式 该方...
    99+
    2023-09-25
    java
  • RedisTemplate常用操作方法总结(set、hash、list、string等)
    目录String类型Hash类型List类型Set类型zSet类型Redis常用的数据类型: StringHashListSetzSetSorted set String类型 保存和...
    99+
    2024-04-02
  • Redis基本数据类型List常用操作命令
    目录Redis数据类型List操作一、push 插入元素1. lpush,在头部插入2. rpush,在尾部插入二、range 通过区间获取元素三、pop 移除元素1. lpop 左...
    99+
    2024-04-02
  • C# 列表List的常用属性和方法介绍
    1.创建列表 (列表可以存储任何类型的数据,在创建列表对象的时候首先要指定你要创建的这个列表要存储什么类型的)(泛型) //创建列表 //方法一 ...
    99+
    2024-04-02
  • PHP数组的常见操作和常用函数
    一.数组遍历 在操作数组时,经常需要依次访问数组中的每个元素,这种操作称为数组的遍历。 在PHP中,通常使用foreach语句实现数组的遍历,其语法格式有两种,具体如下:  以上两种语法格式都是通过foreach语句来实现对数组的遍历,不同...
    99+
    2023-09-05
    php 开发语言
  • C#线程操作常见的操作方法有哪些
    这篇文章主要讲解了“C#线程操作常见的操作方法有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C#线程操作常见的操作方法有哪些”吧!C#线程操作常见的操作方法是什么呢?C#线程操作方法的...
    99+
    2023-06-17
  • 3Mysql 的常用操作
    root@OBird ~]# mysql -uroot -pzaq12wsx   #入库mysql> show databases;  #查库ERROR 2006 (HY000): MySQL server has gone away...
    99+
    2023-01-31
    常用 操作 Mysql
  • C# 操作符的分类和应用
    本篇内容介绍了“C# 操作符的分类和应用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!C# 操作符分类及应用讲述之前我们首先要明白:表达式由...
    99+
    2023-06-17
  • C#和ADO.NET的操作怎么使用
    本篇内容主要讲解“C#和ADO.NET的操作怎么使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C#和ADO.NET的操作怎么使用”吧!C#和ADO.NET访问数据库是大多数应用程序的一部分,...
    99+
    2023-06-17
  • Python 字典的特点和常用操作
    一、字典帮助文档>>> dir(dict) ['__class__', '__cmp__', '__contains__', '__delattr__', '__delitem__', '__doc__', '__eq__...
    99+
    2023-01-31
    字典 常用 操作
  • 【C#基础】C# 异常处理操作
    序号系列文章6【C#基础】C# 常用语句讲解7【C#基础】C# 常用数据结构8【C#基础】C# 面向对象编程 文章目录 前言1,异常的概念2,处理异常3,自定义异常4,编译器异常结语 前言 🌷大家好,我是wr...
    99+
    2023-08-18
    c# 开发语言 java
  • C#中Hashtable和Dictionary的区别与用法示例
    前言 在.NET Framework中,Hashtable是System.Collections命名空间提供的一个容器,用于处理和表现类似keyvalue的键值对,其中key通常可用...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作