LINQ - ऑब्जेक्ट

LINQ से SQL या LINQ से XML में LINQ प्रोवाइडर (API) की आवश्यकता के बिना इन-मेमरी डेटा कलेक्शन तक पहुँचने के लिए LINQ से ऑब्जेक्ट्स में LINQ किसी भी प्रकार की LINQ क्वेरी का उपयोग करने में मदद करता है।

LINQ का परिचय वस्तुओं से होता है

LINQ से ऑब्जेक्ट्स में क्वेरीज़ केवल आमतौर पर IEnumerable <T> प्रकार के चर वापस करती हैं। संक्षेप में, LINQ से ऑब्जेक्ट्स पहले के रूप में संग्रह के लिए एक नया दृष्टिकोण प्रदान करते हैं, संग्रह से डेटा की पुनर्प्राप्ति के लिए लंबी कोडिंग (बहुत जटिलता के फॉरेक्स लूप) लिखना महत्वपूर्ण था, जिसे अब घोषणात्मक कोड लिखकर बदल दिया गया है जो स्पष्ट रूप से वांछित डेटा का वर्णन करता है जिसे पुनः प्राप्त करना आवश्यक है।

पारंपरिक पठनीय छोरों से अधिक पठनीयता, शक्तिशाली फ़िल्टरिंग, समूहीकरण की क्षमता, न्यूनतम एप्लिकेशन कोडिंग के साथ उन्नत ऑर्डरिंग जैसी वस्तुओं के लिए LINQ के कई फायदे हैं। ऐसे LINQ क्वेरी प्रकृति में अधिक कॉम्पैक्ट हैं और किसी भी अन्य डेटा स्रोतों में बिना किसी संशोधन के या केवल थोड़े से संशोधन के साथ पोर्टेबल हैं।

नीचे वस्तुओं के उदाहरण के लिए एक सरल LINQ है -

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 का उपयोग करके वस्तुओं के लिए किया जाता है।

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

जब उपरोक्त कोड संकलित और निष्पादित किया जाता है, तो यह निम्नलिखित परिणाम उत्पन्न करता है -

Tablesaw
Bandsaw
Planer
Jointer
Drill
Sander

LINQ का उपयोग करके मेमोरी कलेक्शंस में क्वेरी करना

सी#

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

वीबी

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.