首页 > 其他分享 >无涯教程-LINQ - 对象

无涯教程-LINQ - 对象

时间:2023-12-10 12:31:44浏览次数:29  
标签:教程 Console Name System LINQ 无涯 DepartmentId Department

LINQ to Objects可以使用支持IEnumerable<T> 的任何LINQ查询来访问内存中的数据集合,而无需使用LINQ提供程序(API),例如LINQ to SQL或LINQ to XML。

LINQ对象介绍

LINQ to Objects中的查询仅返回通常为IEnumerable<T> 类型的变量,简而言之,LINQ to Objects提供了一种较新的集合方法,为从集合中检索数据编写长编码(非常复杂的foreach循环)至关重要,现在已被编写明确描述所需数据的声明性代码所取代需要检索。

与传统的foreach循环相比,LINQ to Objects还具有许多优点,如更具可读性,强大的过滤功能,分组功能,使用最少的应用程序编码即可增强排序功能。这样的LINQ查询本质上也更紧凑,并且可以在不进行任何修改或稍加修改的情况下移植到任何其他数据源。

以下是一个简单的LINQ to Objects示例-

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

namespace LINQtoObjects {
   class Program {
      static void Main(string[] args) {
      
         string[] tools = { "Tablesaw", "Bandsaw", "Planer", "Jointer", "Drill", "Sander" };
         var list = from t in tools select t;

         StringBuilder sb = new StringBuilder();

         foreach (string s in list) {
            sb.Append(s + Environment.NewLine);
         }
		 
         Console.WriteLine(sb.ToString(), "Tools");
         Console.ReadLine();
      }
   }
}

在该示例中,字符串(工具)数组用作要使用LINQ to Objects查询的对象的集合。

Objects query is:
var list = from t in tools select t;

编译并执行上述代码后,将产生以下输出-

Tablesaw
Bandsaw
Planer
Jointer
Drill
Sander

内存集合查询

C#

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

namespace LINQtoObjects {
   class Department {
      public int DepartmentId { get; set; }
      public string Name { get; set; }
   }

   class LinqToObjects {
      static void Main(string[] args) {
      
         List<Department> departments = new List<Department>();
			
         departments.Add(new Department { DepartmentId = 1, Name = "Account" });
         departments.Add(new Department { DepartmentId = 2, Name = "Sales" });
         departments.Add(new Department { DepartmentId = 3, Name = "Marketing" });

         var departmentList = from d in departments
                              select d;

         foreach (var dept in departmentList) {
            Console.WriteLine("Department Id={0} , Department Name={1}",
               dept.DepartmentId, dept.Name);
         }
		 
         Console.WriteLine("\nPress any key to continue.");
         Console.ReadKey();
      }
   }
}

VB

Imports System.Collections.Generic
Imports System.Linq

Module Module1

   Sub Main(ByVal args As String())

      Dim account As New Department With {.Name = "Account", .DepartmentId = 1}
      Dim sales As New Department With {.Name = "Sales", .DepartmentId = 2}
      Dim marketing As New Department With {.Name = "Marketing", .DepartmentId = 3}

      Dim departments As New System.Collections.Generic.List(Of Department)(New Department() {account, sales, marketing})

      Dim departmentList = From d In departments

      For Each dept In departmentList
         Console.WriteLine("Department Id={0} , Department Name={1}", dept.DepartmentId, dept.Name)
      Next

      Console.WriteLine(vbLf & "Press any key to continue.")
      Console.ReadKey()
   End Sub

   Class Department
      Public Property Name As String
      Public Property DepartmentId As Integer
   End Class
   
End Module

编译并执行以上C#或VB的代码时,将产生以下输出-

Department Id=1, Department Name=Account
Department Id=2, Department Name=Sales
Department Id=3, Department Name=Marketing

Press any key to continue.

参考链接

https://www.learnfk.com/linq/linq-objects.html

标签:教程,Console,Name,System,LINQ,无涯,DepartmentId,Department
From: https://blog.51cto.com/u_14033984/8760035

相关文章

  • 使用Vue和Element UI进行文件上传的简单教程
    当使用Vue和ElementUI进行文件上传时,你可以按照以下步骤进行操作:步骤1:安装Vue和ElementUI在你的Vue项目中使用npm或者yarn安装Vue和ElementUI:npminstallvueelement-ui步骤2:创建上传组件创建一个Vue组件来处理文件上传的逻辑。在组件的<template>中添加一个文件上传的按钮和......
  • 无涯教程-LINQ - SQL查询
    LINQtoSQL提供了用于将关系数据作为对象进行管理的基础结构(运行时)。它是.NETFramework3.5版的组件,可以将对象模型的语言集成查询转换为SQL,然后将这些查询发送到数据库以供执行。从数据库获取输出后,LINQtoSQL再次将其转换为对象。LINQtoSQL简介对于大多数ASP.NET开发......
  • Visual Studio2022激活教程
    Visual Studio2022激活教程Microsoft Visual Studio 2022(简称VS)是美国微软公司的开发工具包系列产品。VS是一个基本完整的开发工具集,它包括了整个软件生命周期中所需要的大部分工具,如UML工具、代码管控工具、集成开发环境(IDE)等等。所写的目标代码适用于微软支持的所有平台,包......
  • 无涯教程-LINQ - 环境设置
    在开始LINQ程序之前,最好首先了解设置LINQ环境的细微差别,LINQ需要一个.NET框架,这是一个革命性的平台,可以具有多种应用程序,LINQ查询可以方便地用C#或VisualBasic编写。Microsoft通过VisualStudio提供了针对这两种语言的工具,即C#和VisualBasic。无涯教程的示例都是在VisualSt......
  • 仿windows12网盘,私有云盘部署教程,支持多种网盘
    仿windows12网盘,私有云盘部署教程,支持多种网盘资源宝分享:www.httple.net宝塔部署方式:1.验证是否安装jdk,没有安装请看安装教程推荐安装jdk8(注意您是yum还是apt安装自行选择)一、登录ssl终端获取jdk版本yumsearchjava|grepjdkapt-cachesearchjava8二、执行安装命令yum......
  • Vite多页面打包教程:一步步实现多页面应用
    前言Vite是一个快速的现代化前端构建工具,它提供了快速的开发体验和高效的打包能力。在本教程中,我们将学习如何使用Vite实现多页面打包,让你的应用能够拥有多个独立的页面。步骤1:创建页面文件夹首先,在你的项目根目录下创建一个名为pages的文件夹。这个文件夹将用于存放每个页面的......
  • OrangePi 驱动开发基础教程
    OrangePi驱动开发基础教程准备工作实验材料:OrangePi开发板、sd卡。sd卡烧录Orangepi4-lts_3.0.6_ubuntu_jammy_desktop_xfce_linux5.18.5或Orangepi4-lts_3.0.6_ubuntu_focal_desktop_xfce_linux5.10.43版镜像(注意是带桌面的desktop版,否则无法方便地复制粘贴指令(除非通过串......
  • CentOS 7.6 安装 Go 1.20.12 环境教程+更换国内源
    安装因为需要安装httpx,官方github要求使用1.20版本的Go环境,就没有安装最新的1.21。先去官网查看:https://go.dev/dl/如上图,我们选择Linuxamd64的(使用命令下就行,如若不能正常下载,就直接下完传上服务器也一样)wgethttps://go.dev/dl/go1.20.12.linux-amd64.tar.gz2.其次......
  • Docker入门教程
    什么是DockerDocker是开源的应用容器引擎。Docker可以让你将所有应用软件以及它的以来打包成软件开发的标准化单元。Docker容器将软件以及它运行安装所需的一切文件(代码、运行时、系统工具、系统库)打包到一起,这就保证了不管是在什么样的运行环境,总是能以相同的方式运行。就好像......
  • 群晖创建blossom教程
    1.安装数据库1.1打开群晖套件中心,搜索“MariaDB”点击安装。1.2安装时,会让你填写密码,注意密码必须包含大小写,数字,特殊符号。注意以前安装了mysql数据库可能导致3306端口重复,无法安装,请修改以前mysql数据库的端口.1.3安装完成后,打开MariaDB数据库,勾选启用TCP/IP连接1.4打......