LINQ - 对象

LINQ - 对象 首页 / LinQ入门教程 / LINQ - 对象

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

链接:https://www.learnfk.comhttps://www.learnfk.com/linq/linq-objects.html

来源:LearnFk无涯教程网

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.

祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)

技术教程推荐

机器学习40讲 -〔王天一〕

即时消息技术剖析与实战 -〔袁武林〕

全栈工程师修炼指南 -〔熊燚(四火)〕

分布式协议与算法实战 -〔韩健〕

如何看懂一幅画 -〔罗桂霞〕

如何读懂一首诗 -〔王天博〕

Spring Cloud 微服务项目实战 -〔姚秋辰(姚半仙)〕

Serverless进阶实战课 -〔静远〕

AI大模型之美 -〔徐文浩〕

好记忆不如烂笔头。留下您的足迹吧 :)