LINQ - Objek

LINQ ke Objek menawarkan penggunaan kueri LINQ apa ​​pun yang mendukung IEnumerable <T> untuk mengakses koleksi data dalam memori tanpa memerlukan penyedia LINQ (API) seperti LINQ ke SQL atau LINQ ke XML.

Pengenalan LINQ ke Objek

Query dalam LINQ to Objects mengembalikan variabel tipe biasanya hanya IEnumerable <T>. Singkatnya, LINQ to Objects menawarkan pendekatan baru untuk koleksi seperti sebelumnya, sangat penting untuk menulis pengkodean panjang (untuk setiap loop dengan banyak kompleksitas) untuk pengambilan data dari koleksi yang sekarang diganti dengan menulis kode deklaratif yang dengan jelas menggambarkan data yang diinginkan. yang diperlukan untuk mengambil.

Ada juga banyak keuntungan LINQ ke Objek dibandingkan loop foreach tradisional seperti lebih mudah dibaca, pemfilteran yang kuat, kemampuan pengelompokan, pengurutan yang ditingkatkan dengan pengkodean aplikasi minimal. Kueri LINQ tersebut juga lebih kompak dan portabel ke sumber data lain tanpa modifikasi apa pun atau hanya dengan sedikit modifikasi.

Di bawah ini adalah contoh LINQ ke Objek sederhana -

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();
      }
   }
}

Dalam contoh, larik string (alat) digunakan sebagai kumpulan objek yang akan ditanyakan menggunakan LINQ ke Objek.

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

Ketika kode di atas dikompilasi dan dijalankan, itu menghasilkan hasil sebagai berikut -

Tablesaw
Bandsaw
Planer
Jointer
Drill
Sander

Membuat Kueri dalam Koleksi Memori Menggunakan LINQ ke Objek

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

Ketika kode C # atau VB di atas dikompilasi dan dijalankan, itu menghasilkan hasil sebagai berikut -

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

Press any key to continue.