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#中的Flags特性

    使用C#中的Flags特性,可以为枚举类型的每个成员指定一个位掩码,以便组合多个成员的标志值。在本文中,我们将讲解如何使用Flags特性,并给出两个示例来说明其用法。 何时使用Flags特性 在需要对枚举类型中的多个成员使用二进制标志值时,就可以考虑使用Flags特性来解决。通过使用Flags特性,可以将多个成员的二进制标志值组合在一起,快速判断多个标志是否…

    C# 2023年6月3日
    00
  • 基于JQuery的asp.net树实现代码

    首先,我们需要明确asp.net树实现的基本原理:树结构的展示是基于DOM的树状结构展示,而实现用户对树节点的交互就需要借助JavaScript的DOM操作能力。JQuery是一款十分适合DOM操作的JavaScript框架,因此使用JQuery可以让我们方便地实现asp.net树的开发。 接下来,我们可以按以下步骤来实现基于JQuery的asp.net树:…

    C# 2023年5月31日
    00
  • 采用easyui tree编写简单角色权限代码的方法

    下面我将为您详细讲解 “采用easyui tree编写简单角色权限代码的方法”的完整攻略,过程中将包含两条示例说明。 一、使用EasyUI Tree组件 1.1 引入EasyUI和jQuery 在使用EasyUI Tree组件前,需要先引入官方提供的EasyUI库和jQuery库。具体方法可以参考以下代码块: <!– 引入JQuery –> …

    C# 2023年6月1日
    00
  • 基于C#中XmlReader读取Xml的深入分析

    基于C#中XmlReader读取Xml的深入分析 什么是XmlReader? XmlReader是一种用于读取XML文件的轻量级非缓存类,可以高效地处理大型XML文件,并且可供C#程序员使用。该类实现了更快的XML文件分析,使得它更适合用于大型XML文件。此外,与XDocument类相比,XmlReader类仅支持单向读取,并且不会保留XML文件的部分或全部…

    C# 2023年6月1日
    00
  • 详解ASP.NET Core MVC 源码学习:Routing 路由

    详解ASP.NET Core MVC 源码学习:Routing 路由 Routing是ASP.NET Core MVC中的一个重要组件,它负责将HTTP请求映射到相应的控制器和动作方法。在本文中,我们将深入学习ASP.NET Core MVC中Routing的实现原理和源码。 Routing的实现原理 Routing的实现原理可以分为两个部分:路由匹配和路由…

    C# 2023年5月16日
    00
  • .NET Core通过dotnet publish命令发布应用

    .NET Core通过dotnet publish命令发布应用的攻略 在.NET Core中,我们可以使用dotnet publish命令将应用程序发布为可执行文件或NuGet包。本攻略将详细介绍如何使用dotnet publish命令发布应用程序。 发布应用程序 我们可以通过以下步骤使用dotnet publish命令发布应用程序。 打开命令行窗口。 进入…

    C# 2023年5月16日
    00
  • .NET Core 离线生成 Tron 波场私钥和地址笔记

    NuGet 引入依赖库 PM> Install-Package Tron.Wallet.Net 随机生成私钥和对应的地址 using Tron.Wallet.Net; namespace ConsoleApp1 { internal class Program { static async Task Main(string[] args) { var …

    C# 2023年4月18日
    00
  • C#9新特性init only setter的使用

    下面是”C#9新特性initonlysetter的使用”的完整攻略。 简介 在C# 9中,推出了一个新的修饰符 init。与 set 不同, init 可以在构造函数中初始化值,并保证在构造函数执行完后,其值不能再次修改。这种属性的更新只能在创建对象和构造函数之间进行。这个新特性非常有意义,因为它可以让我们以更安全和可维护的方式创建不可变的对象。 使用 使用…

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