C#实现Array,List,Dictionary相互转换

下面详细讲解一下C#实现Array、List、Dictionary相互转换的完整攻略。

1. Array和List的相互转换

Array转List

使用ToList()方法可以将Array类型的数组转换为List泛型集合类型,具体代码如下所示:

string[] array = { "apple", "banana", "cherry" };
List<string> list = array.ToList();

List转Array

使用ToArray()方法可以将List泛型集合类型转换为Array类型的数组,具体代码如下所示:

List<string> list = new List<string>() { "apple", "banana", "cherry" };
string[] array = list.ToArray();

2. Array和Dictionary的相互转换

Array转Dictionary

使用ToDictionary()方法可以将Array类型的数组转换为Dictionary泛型字典类型,具体代码如下所示:

string[] array = { "apple", "banana", "cherry" };
Dictionary<int, string> dict = array.ToDictionary((key) => Array.IndexOf(array, key), (value) => value);

上面的代码中,通过Array.IndexOf(array, key)获取数组中每个元素的索引作为字典的键,元素值作为字典的值。

Dictionary转Array

使用ToArray()方法可以将Dictionary泛型字典类型的键值对转换为Array类型的数组,具体代码如下所示:

Dictionary<int, string> dict = new Dictionary<int, string>() 
{ 
    { 0, "apple" },
    { 1, "banana" },
    { 2, "cherry" }
};
string[] array = dict.Select(pair => pair.Value).ToArray();

上面的代码中,使用Select()方法获取字典的每个元素的值作为数组的元素。

3. List和Dictionary的相互转换

List转Dictionary

使用LINQ的ToDictionary()方法可以将List泛型集合类型转换为Dictionary泛型字典类型,具体代码如下所示:

List<string> list = new List<string>() { "apple", "banana", "cherry" };
Dictionary<int, string> dict = list.Select((value, index) => new { index, value })
                                    .ToDictionary(pair => pair.index, pair => pair.value);

上面的代码中,通过Select()方法获取List中每个元素的索引和元素值,然后通过ToDictionary()方法将其转换为字典类型。

Dictionary转List

使用LINQ的Select()方法可以将Dictionary泛型字典类型的键值对转换为List泛型集合类型,具体代码如下所示:

Dictionary<int, string> dict = new Dictionary<int, string>() 
{ 
    { 0, "apple" },
    { 1, "banana" },
    { 2, "cherry" }
};
List<string> list = dict.Select(pair => pair.Value).ToList();

上面的代码中,使用Select()方法获取字典的每个元素的值作为List的元素。

以上就是C#实现Array、List、Dictionary相互转换的完整攻略,其中包含了两条示例代码。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C#实现Array,List,Dictionary相互转换 - Python技术站

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

相关文章

  • CefSharp自定义缓存实现

    大家好,我是沙漠尽头的狼。 上文介绍了《C#使用CefSharp内嵌网页-并给出C#与JS的交互示例》,本文介绍CefSharp的缓存实现,先来说说添加缓存的好处: 提高页面加载加速:CefSharp缓存可以缓存已经加载过的页面和资源,当用户再次访问相同的页面时,可以直接从缓存中加载,而不需要重新下载和解析页面和资源,从而加快页面加载速度。 减少网络流量:使…

    C# 2023年4月27日
    00
  • C# Winform实现自定义漂亮的通知效果

    下面是C# Winform实现自定义漂亮的通知效果的完整攻略。 目录 前言 准备工作 实现步骤 示例说明一 示例说明二 总结 前言 在Winform应用程序中,通知窗口往往是用MessageBox来实现的。但是MessageBox的样式过于单一,且不支持自定义,使用不够灵活。本文将介绍如何使用C#的Winform技术实现自定义漂亮的通知效果。 准备工作 Vi…

    C# 2023年6月1日
    00
  • C# Path.GetRandomFileName – 获取一个随机文件名

    Path.GetRandomFileName 方法是C#中的一个静态方法,其返回一个随机生成的文件名(不包含路径),该方法的作用是用于生成一个随机的文件名,以避免文件名的冲突问题。 使用该方法非常简单,只需要在代码中调用该静态方法即可,该方法的语法格式如下: public static string GetRandomFileName(); 该方法返回一个字…

    C# 2023年4月19日
    00
  • 解读ASP.NET 5 & MVC6系列教程(14):View Component

    下面我来为你详细讲解 ASP.NET 5 & MVC6 系列教程中的第 14 篇文章——View Component 的完整攻略。 一、View Component 简介 View Component 是在 ASP.NET Core 中新增加的基于 HTTP 特性的 MVC 元素。它的主要功能是可以自定义组件部件并将其添加到页面中。与使用Partia…

    C# 2023年5月31日
    00
  • .NET Core 环境变量详解

    一、概述 软件从开发到正式上线,在这个过程中我们会分为多个阶段,通常会有开发、测试、以及上线等。每个阶段对应的环境参数配置我们会使用不同的参数。比如数据库的连接字符串,开发环境一般我们都是连接的测试库。以前这种情况通常是 COPY 两个同名的配置文件来进行处理,然后在本地就使用本地的配置,生产环境就使用生产环境的配置文件,十分麻烦。而 ASP .NET CO…

    C# 2023年4月22日
    00
  • C#获取视频某一帧的缩略图的方法

    C#获取视频某一帧的缩略图的方法 在C#中,我们可以使用FFmpeg库和GDI+库来获取视频某一帧的缩略图。本文将提供详细的“C#获取视频某一帧的缩略图的方法”的完整攻略,包括如何使用FFmpeg库和GDI+库获取视频某一帧的缩略图,以及两个示例代码。 使用FFmpeg库获取视频某一帧的缩略图 在使用FFmpeg库获取视频某一帧的缩略图时,我们可以使用以下步…

    C# 2023年5月15日
    00
  • 使用C#配合ArcGIS Engine进行地理信息系统开发

    一、ArcGIS Engine ArcGIS Engine是ESRI公司出品的用于构建自定义GIS应用程序的开发包。ArcGIS Engine基于COM和现代.NET框架技术体系结构,具有高效、可扩展的GIS开发架构和丰富的应用开发资源和文档。ArcGIS Engine可与ArcGIS Server、ArcGIS for Desktop、ArcGIS Onl…

    C# 2023年6月1日
    00
  • C#如何提取经纬度文件中的经纬度数据

    下面是C#如何提取经纬度文件中的经纬度数据的攻略。 准备工作 首先,我们需要安装GeoCoordinate.Net这个NuGet包,它提供了计算经纬度距离、方向等相关的操作,方便我们在处理经纬度数据时使用。 在Visual Studio中,可以通过在“解决方案资源管理器”中右键点击项目,选择“管理NuGet程序包”的方式来安装。 获取文件中的经纬度数据 接下…

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