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#实现对文件进行加密保护的示例代码

    下面是“C#实现对文件进行加密保护的示例代码”的完整攻略。 一、引言 对文件进行加密保护是信息安全领域中的一个重要问题。C# 是一种流行的编程语言,也是.NET平台的核心语言之一。在C#中,我们可以很容易地实现对文件的加密保护。本文将分享一些如何使用C#加密你的文档的方法和示例代码。 二、C#实现对文件进行加密保护的示例代码 下面是一个简单的示例代码,演示了…

    C# 2023年6月1日
    00
  • C# 最基础知识介绍–多态

    C# 最基础知识介绍–多态 在C#中,多态是面向对象编程(OOP)中的常见概念,它允许不同类型的对象对相同的消息作出响应。简单地说,多态就是对象(或方法)有不同的表现形式。 多态性有三种形式:静态,动态和协变。下面我们会一一解释。 静态多态 静态多态性是在编译时确定的,在程序执行之前,就确定了发生的方法和参数。在编程语言C#中,静态多态性可以通过函数重载和…

    C# 2023年6月1日
    00
  • C#日期格式化的几个要点小结

    下面是对于“C#日期格式化的几个要点小结”的详细讲解: 标准日期格式 C#中常用的标准日期格式有以下几种: “d”: 短日期格式(默认格式为”yyyy/MM/dd”) “D”: 长日期格式(默认格式为”yyyy’年’MM’月’dd’日’ dddd”) “f”: 长日期+短时间格式(默认格式为”yyyy’年’MM’月’dd’日’ HH:mm”) “F”: 完整…

    C# 2023年5月15日
    00
  • C#中多态性的实现

    C#中的多态性是通过继承和接口实现的。通过继承可以使子类继承父类的特征,而通过接口可以在类中实现多个接口。多态性能够提高代码可维护性和扩展性。下面是多态性的实现攻略。 继承实现多态性 继承是实现多态性的一种最基本的方式,子类可以继承父类所有的方法、属性和数据字段。子类可以使用父类的方法、属性和数据字段,同时还可以在子类中实现自己的方法、属性和数据字段。这样可…

    C# 2023年6月6日
    00
  • .netcore 写快递100的快递物流信息查询接口的实现

    .NET Core实现快递100的快递物流信息查询接口 快递100是一个广受欢迎的快递物流信息查询网站,它提供了全国范围内的快递物流信息查询服务。本攻略将详细介绍如何使用.NET Core实现快递100的快递物流信息查询接口,并提供两个示例说明。 快递100 API 快递100提供了一组API,可以用于查询快递物流信息。其中,最常用的API是查询快递物流信息…

    C# 2023年5月17日
    00
  • C#简单遍历指定文件夹中所有文件的方法

    下面是“C#简单遍历指定文件夹中所有文件的方法”的完整攻略。 1. 使用Directory类 我们可以使用C#内置的Directory类来实现遍历指定文件夹中所有文件的功能。具体实现步骤如下: 引用System.IO命名空间,使用Directory.GetFiles()方法获取指定文件夹中所有文件的路径。 使用foreach循环遍历获取到的文件路径,在循环体…

    C# 2023年6月1日
    00
  • C#调用RabbitMQ实现消息队列的示例代码

    下面我会给出详细讲解“C#调用RabbitMQ实现消息队列”的完整攻略,其中包含两条示例代码。具体请见下文: 什么是RabbitMQ? RabbitMQ是一个开源的消息中间件,它采用的AMQP协议为应用程序提供可靠的异步消息传输。 RabbitMQ的优势 使用RabbitMQ可以将消息发送给一个或多个接收者,并使用消息队列保存等待处理的消息。这种方式有下面的…

    C# 2023年5月15日
    00
  • WPF 调用 ECAN 发送数据会阻塞的解决过程

    接了个活, 写个 WPF 上位机用 PCAN 或 ECAN 和单片机通讯, 读取传感器数据. 程序逻辑是 : 选择连接类型 PCAN / ECAN, 选择波特率, 选择通道号, 输入查询间隔, 连接设备. 然后开启一个后台线程循环发送读取指令逐个读取传感器数据. 使用 PCAN 时, 连接和收发数据都正常, 但改为 ECAN 连接后, 有很大几率卡在 SDK…

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