用Linq从一个集合选取几列得到一个新的集合(可改列名)

使用Linq可以从一个集合中选择一部分数据,然后形成一个新的集合,具体可分为以下几步:

  1. 使用Select()方法选择数据集合中的某些字段。
  2. 使用Select()方法创建一个匿名类型对象,指定新的列名。
  3. 使用ToList()方法生成一个新的集合对象。

下面是一个完整的示例代码:

List<Student> students = new List<Student>()
{
    new Student {Id=1, Name="Alice", Gender="Female", Score=90 },
    new Student {Id=2, Name="Bob", Gender="Male", Score=80 },
    new Student {Id=3, Name="Cathy", Gender="Female", Score=85 },
    new Student {Id=4, Name="David", Gender="Male", Score=95 },
};

// 选取Id和Name两列,形成一个新的对象集合
var result = students
    .Select(s => new { Id = s.Id, FullName = s.Name })
    .ToList();

foreach (var s in result)
{
    Console.WriteLine($"Id: {s.Id}, Name: {s.FullName}"); // 输出结果
}

在这个示例中,我们选取了Student对象集合中的Id和Name这两列,使用了匿名类型的方式创建了IdFullName这两列,并且在输出时显示了相应的内容。

另一个示例是在选择数据的同时,类似于SQL语句中的AS关键字,可以使用PropertyName=NewName的方式为新列命名。示例如下:

// 选取Name和Score两列,并将Score修改为Grade,形成一个新的对象集合
var result2 = students
    .Select(s => new { StudentName = s.Name, Grade = s.Score })
    .ToList();

foreach (var s in result2)
{
    Console.WriteLine($"Name: {s.StudentName}, Grade: {s.Grade}"); // 输出结果
}

在上述示例中,我们选取了Student对象集合中的Name和Score这两列,使用了匿名类型的方式创建了StudentNameGrade这两列,Grade对应的是原始数据集合中的Score,输出时显示了相应的内容。

这样,我们使用Linq从一个集合选取几列得到一个新的集合并修改列名,该过程就完成了。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:用Linq从一个集合选取几列得到一个新的集合(可改列名) - Python技术站

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

相关文章

  • RandomId生成随机字符串详解实例

    RandomId生成随机字符串详解实例 介绍 在软件开发中,为了满足不同的需求,我们经常需要生成随机字符串进行使用。本篇文章将介绍RandomId生成随机字符串的详细过程,以及具体的示例说明。 准备工作 在使用RandomId生成随机字符串之前,需要在项目中引入RandomId的相关代码。可以使用以下语句进行安装: npm install randomid …

    C# 2023年6月7日
    00
  • ASP.NET Core依赖注入DI容器的方法实现

    ASP.NET Core依赖注入DI容器的方法实现攻略 ASP.NET Core依赖注入(DI)是一种设计模式,它允许我们将对象的创建和管理从应用程序代码中分离出来。在ASP.NET Core中,我们可以使用内置的DI容器来实现依赖注入。本攻略将介绍如何使用ASP.NET Core的DI容器。 步骤 以下是使用ASP.NET Core的DI容器的步骤: 在S…

    C# 2023年5月17日
    00
  • C# PictureBox控件方法参数及图片删除重命名上传详解

    C# PictureBox控件方法参数及图片删除重命名上传详解 控件介绍 PictureBox控件是 C#中非常常用的图片显示控件,可以显示多种图片格式的静态图像和动态图像。 常用方法及参数 PictureBox.ImageLocation 属性 该属性可以指定 PictureBox 控件要显示的图像文件的路径,路径可以是绝对路径,也可以是相对于应用程序包含…

    C# 2023年5月15日
    00
  • WPF实现绘制3D图形的示例代码

    下面我将为你讲解WPF实现绘制3D图形的完整攻略。 步骤一:引入命名空间 在使用3D图像前,必须引用System.Windows.Media.Media3D和System.Windows.Media.Imaging命名空间,使用如下代码: using System.Windows.Media.Media3D; using System.Windows.Med…

    C# 2023年6月7日
    00
  • ASP.NET MVC使用异步TPL模式

    ASP.NET MVC使用异步TPL模式的完整攻略如下: 什么是TPL TPL,即Task Parallel Library,是.NET Framework 4.0及以上版本的一个并发处理库,用于在不同线程之间并发执行任务,提高程序的并发执行能力和性能。 为什么使用TPL 使用TPL可以带来以下几个好处: 提高程序性能:多个任务并行执行可以利用多CPU、多核…

    C# 2023年5月31日
    00
  • .NET Core中使用Redis与Memcached的序列化问题详析

    .NET Core 中使用 Redis 与 Memcached 的序列化问题详析 在 .NET Core 中,Redis 和 Memcached 是两个非常流行的缓存解决方案。在使用 Redis 和 Memcached 时,序列化是一个非常重要的问题。本攻略将详细介绍在 .NET Core 中使用 Redis 和 Memcached 时的序列化问题,并提供多…

    C# 2023年5月17日
    00
  • 浅谈C#9.0新特性之参数非空检查简化

    首先,C# 9.0中引入的新特性包含了很多实用的语言功能,其中参数非空检查简化就是其中之一。在传统的C#语言中,我们常使用条件判断语句来检查参数是否为null,这样代码可读性较差,而C# 9.0中的新特性可以更加方便快捷地进行参数非空检查。 简化前的参数非空检查 在C# 9.0之前,我们通常使用以下方式来进行参数非空检查: void PrintMessage…

    C# 2023年5月15日
    00
  • C# readnodefile()不能读取带有文件名为汉字的osg文件解决方法

    问题描述:在使用C#的readnodefile()函数读取osg文件时,如果文件名中带有汉字,函数会出现错误无法读取文件的情况。那么该如何解决这个问题呢?我们可以按照以下步骤进行尝试解决。 解决方案: Step 1. 确认文件路径是否正确 在使用readnodefile()函数读取文件时,首先需要确认传入的文件路径是否正确。检查是否在路径中包含了文件名中带有…

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