c#使用linq把多列的List转化为只有指定列的List

想要使用LINQ将多列的列表转化为只有指定列的列表,可以按照以下步骤进行操作:

  1. 首先创建一个包含多列数据的列表,可以使用下面的代码创建一个实例用于演示:
List<Person> persons = new List<Person>()
{
new Person() { Id = 1, Name = "Tom", Age = 25 },
new Person() { Id = 2, Name = "Jerry", Age = 26 },
new Person() { Id = 3, Name = "Mike", Age = 27 }
};
  1. 接着,定义一个新的列表,用于存储我们指定的列,例如下面代码中我们只需要ID和Name两列数据:
var subset = persons.Select(p => new PersonViewModel { Id = p.Id, Name = p.Name }).ToList();

在上面的代码中,我们使用了Select方法来筛选出需要的两列数据,并将它们转化为 PersonViewModel 类型,然后将其转换为一个新的列表。

  1. 最后,我们可以根据需要输出存储有指定列数据的列表,例如下面的代码将使用Console输出新列表中的每个元素:
foreach (var item in subset)
{
    Console.WriteLine("Id: {0}, Name: {1}", item.Id, item.Name);
}

完整的代码示例如下:

using System;
using System.Collections.Generic;
using System.Linq;

// 定义 Person 类型,用于存储 person 数据
public class Person
{
    public int Id { get; set; }
    public string Name { get; set; }
    public int Age { get; set; }
}

// 定义 PersonViewModel 类型,用于存储指定的字段数据
public class PersonViewModel
{
    public int Id { get; set; }
    public string Name { get; set; }
}

public class Program
{
    static void Main(string[] args)
    {
        // 创建包含多个数据列的列表实例
        List<Person> persons = new List<Person>()
        {
            new Person() { Id = 1, Name = "Tom", Age = 25 },
            new Person() { Id = 2, Name = "Jerry", Age = 26 },
            new Person() { Id = 3, Name = "Mike", Age = 27 }
        };

        // 定义 PersonViewModel 列表,只包含需要的 Id 和 Name 两列
        var subset = persons.Select(p => new PersonViewModel { Id = p.Id, Name = p.Name }).ToList();

        // 输出新的列表中的每个元素
        foreach (var item in subset)
        {
            Console.WriteLine("Id: {0}, Name: {1}", item.Id, item.Name);
        }
    }
}

上面的代码演示了基本实现机制,如果有需要,可以根据实际情况进行扩展。例如,可以使用Where方法进行筛选,然后再使用Select方法选择指定的列进行转换。还可以根据具体需求使用其他LINQ操作,来更灵活的处理列表数据。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:c#使用linq把多列的List转化为只有指定列的List - Python技术站

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

相关文章

  • C# Base 64 编码/解码实现代码

    下面我会详细讲解“C# Base 64 编码/解码实现代码”的完整攻略: 简介 Base 64 编码是一种常见的用于传输二进制数据的编码方式,通常用于在网络传输中将二进制的数据转换为 ASCII 字符串,方便传输和存储。C# 中提供了对 Base 64 编码和解码的支持,使用非常方便。 Base 64 编码实现 C# 中实现 Base 64 编码的方法非常简…

    C# 2023年5月31日
    00
  • C#实现FTP传送文件的示例

    下面是详细讲解“C#实现FTP传送文件的示例”的完整攻略: 一、前置准备 在使用C#来实现FTP传送文件前,我们需要确保我们已经安装了.NET Framework并配置好了我们的FTP服务器。 1. 安装.NET Framework .NET Framework是Microsoft开发和运行Windows操作系统的一个核心组件,我们需要确保我们已经安装了最新…

    C# 2023年6月1日
    00
  • Asp.Net Core配置多环境log4net配置文件的全过程

    下面是详细讲解”Asp.Net Core配置多环境log4net配置文件的全过程”的完整攻略: 1. 引入log4net依赖 可以通过Nuget包管理器或手动安装的方式引入log4net,以Nuget包管理器为例,可以在项目中右键点击“管理NuGet程序包”,然后搜索log4net安装即可。 2. 配置log4net log4net的配置文件可以放置在多个环…

    C# 2023年6月3日
    00
  • C#跨平台开发之使用C/C++生成的动态链接库

    C#跨平台开发时,有时候需要调用C/C++编写的动态链接库(DLL)来完成一些特定功能,这时我们需要使用P/Invoke (Platform Invoke)机制来调用DLL。下面是使用C/C++生成动态链接库供C#跨平台项目调用的完整攻略: 步骤一:创建DLL项目 首先,在Visual Studio中创建一个动态链接库项目,可以选择C++/CLI(DLL)模…

    C# 2023年5月15日
    00
  • C#.net格式化时间字符串达到不同的显示效果

    当我们需要将系统或自定义的日期时间以特定格式显示时,可以使用C#中的时间格式化字符串。下面是使用C#.net格式化时间字符串达到不同的显示效果的完整攻略: 1.使用标准格式化字符串 使用标准格式化字符串可以将日期时间格式化成一系列常见的格式。下面是一些常用的标准格式化字符串: “d”:将短日期格式化为 “月/日/年”。 “D”:将长日期格式化为 “周几,月 …

    C# 2023年6月1日
    00
  • .Net WInform开发笔记(三)谈谈自制控件(自定义控件)

    针对“.Net WInform开发笔记(三)谈谈自制控件(自定义控件)”这篇文章,我来给您进行详细的讲解和说明。 一、文章简介及目的 该篇文章主要介绍自定义控件的基本概念和实现方法,旨在帮助读者了解自定义控件的开发流程和技巧,提高自己的WinForm控件开发能力。 二、文章内容分析 1.控件的基本结构和实现方法 作者首先讲解了控件的基本结构和实现方法,包括:…

    C# 2023年5月31日
    00
  • C#中Convert.ToInt32()和int.Parse()的区别介绍

    下面是关于“C#中Convert.ToInt32()和int.Parse()的区别介绍”的攻略: 1. Convert.ToInt32()和int.Parse()的基本介绍 在C#中,我们可以使用Convert.ToInt32()和int.Parse()将字符串类型转换为整数类型。两者主要的区别在于它们对于非法字符串的处理方式不同。 Convert.ToIn…

    C# 2023年5月15日
    00
  • asp.net实现将ppt文档转换成pdf的方法

    将 ppt 文档转换成 PDF 是一个常见的需求,以下是 asp.net 实现将 ppt 文档转换成 PDF 的方法的完整攻略。 步骤 1:安装 Microsoft PowerPoint Interop 首先,您需要安装 Microsoft PowerPoint Interop 来处理 ppt 文件。通过安装 PowerPoint Interop,您可以将 …

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