LINQ-개체
LINQ to Objects는 LINQ to SQL 또는 LINQ to XML의 경우와 같이 LINQ 공급자 (API) 없이도 메모리 내 데이터 컬렉션에 액세스하기 위해 IEnumerable <T>를 지원하는 모든 LINQ 쿼리를 사용할 수 있습니다.
LINQ to Objects 소개
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
SanderLINQ to 개체를 사용하여 메모리 컬렉션에서 쿼리
씨#
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.