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日

相关文章

  • C#中常使用进度条的代码

    让我来为你讲解如何在C#应用程序中使用进度条的代码。 1. 创建进度条控件 在Visual Studio中创建一个新的Windows Forms应用程序项目。然后,找到工具箱中的“ProgressBar”控件并将其拖放到窗体上。可以通过设置控件的属性来更改进度条的外观和行为,例如使进度条水平或垂直、更改颜色等等。 2. 编写代码更新进度条 进度条的名称应该是…

    C# 2023年6月7日
    00
  • C#9.0推出的4个新特性介绍

    下面会详细解释C# 9.0推出的4个新特性。 1. 初始化设置 初始化设置是指在声明变量时就对其进行初始化的语法糖。在C# 9.0之前,如果需要在创建类实例时初始化一些属性,需要写出完整的构造函数并在代码中进行调用。而在C# 9.0中,我们可以通过以下语法糖来完成同样的操作: var person = new Person { FirstName = &qu…

    C# 2023年5月31日
    00
  • ASP.NET Core中使用xUnit进行单元测试

    ASP.NET Core中使用xUnit进行单元测试攻略 在ASP.NET Core中,xUnit是一种流行的单元测试框架。在本攻略中,我们将深入讲解如何使用xUnit进行单元测试,并提供两个示例说明。 xUnit的安装 在使用xUnit进行单元测试之前,我们需要安装xUnit。以下是安装xUnit的步骤: 在Visual Studio中,打开NuGet包管…

    C# 2023年5月17日
    00
  • C# PLINQ 内存列表查询优化历程

    C# PLINQ 内存列表查询优化历程 问题描述 我们有一个包含1千万个元素的列表,每个元素包含两个整数字段,需要进行查询和统计操作。最初使用普通的Linq查询,但在大数据情况下性能明显不足。 解决方案 我们使用PLINQ(Parallel LINQ,即并行LINQ)来优化查询。PLINQ是Linq的一个扩展,可以在多个线程中并行执行查询,提高查询效率。 步…

    C# 2023年6月7日
    00
  • ASP.NET Core中的Razor页面使用视图组件

    在 ASP.NET Core 中,可以使用 Razor 页面和视图组件来构建动态 Web 应用程序。视图组件是一种可重用的 UI 组件,可以在多个 Razor 页面中使用。以下是 ASP.NET Core 中 Razor 页面使用视图组件的完整攻略: 步骤一:创建视图组件 在使用视图组件前,需要创建视图组件。可以在 ASP.NET Core 项目中的 Vie…

    C# 2023年5月17日
    00
  • VsCode使用EmmyLua插件调试Unity工程Lua代码的详细步骤

    详细讲解“VsCode使用EmmyLua插件调试Unity工程Lua代码的详细步骤”的完整攻略如下: 1. 准备工作 首先,我们需要确保我们的环境中已经安装了以下软件:1. Visual Studio Code(简称VsCode)2. Unity3. Lua环境4. EmmyLua插件 2. 配置Unity 在Unity中,我们需要做以下配置:1. 打开Pl…

    C# 2023年5月15日
    00
  • .NET数组使用中的注意事项小结

    .NET数组使用中的注意事项小结 1. 数组基本介绍 在.NET中,数组是一种最常用的数据结构之一。数组是具有一定顺序关系的数据集合,可以使用整数作为下标(索引)访问数组中的元素。在使用数组时,需要注意以下几个点: 数组元素类型 数组长度 数组下标 数组越界 2. 数组元素类型 数组元素的类型可以是基本数据类型,也可以是引用类型。常见的基本数据类型有int、…

    C# 2023年6月7日
    00
  • WPF绑定实例详解

    WPF绑定实例详解 在WPF中,绑定是一种非常重要的特性,它可以将数据与UI元素连接在一起,使得数据的变化能够自动更新到UI界面上。本文将详细介绍WPF绑定的使用方法与注意事项。 绑定的基本用法 WPF中的绑定基于MVVM设计模式,通过将视图(View)与视图模型(ViewModel)分离,使得界面逻辑与业务逻辑解耦合,降低代码的耦合性和复杂性。绑定的基本用…

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