Visual Basic .NET Language
LINQ
खोज…
परिचय
LINQ (Language Integrated Query) एक अभिव्यक्ति है जो डेटा स्रोत से डेटा को पुनः प्राप्त करता है। LINQ विभिन्न प्रकार के डेटा स्रोतों और प्रारूपों में डेटा के साथ काम करने के लिए एक सुसंगत मॉडल की पेशकश करके इस स्थिति को सरल बनाता है। LINQ क्वेरी में, आप हमेशा ऑब्जेक्ट्स के साथ काम कर रहे हैं। आप XML दस्तावेज़, SQL डेटाबेस, ADO.NET डेटासेट, .NET संग्रह और किसी अन्य प्रारूप के लिए डेटा को क्वेरी और बदलने के लिए एक ही मूल कोडिंग पैटर्न का उपयोग करते हैं, जिसके लिए एक LINQ प्रदाता उपलब्ध है।
प्रक्षेपण
' sample data
Dim sample = {1, 2, 3, 4, 5}
' using "query syntax"
Dim squares = From number In sample Select number * number
' same thing using "method syntax"
Dim squares = sample.Select (Function (number) number * number)
हम एक साथ कई परिणाम भी प्रोजेक्ट कर सकते हैं
Dim numbersAndSquares =
From number In sample Select number, square = number * number
Dim numbersAndSquares =
sample.Select (Function (number) New With {Key number, Key .square = number * number})
साधारण स्थिति के साथ सरणी से चयन करना
Dim sites() As String = {"Stack Overflow", "Super User", "Ask Ubuntu", "Hardware Recommendations"}
Dim query = From x In sites Where x.StartsWith("S")
' result = "Stack Overflow", "Super User"
Stack Overflow
और Super User
युक्त क्वेरी को गणना योग्य वस्तु होगी। क्वेरी में x
चर को पुनरावृत्त कर रहा है, जहां प्रत्येक वस्तु को Where
खंड द्वारा जाँच की गई है, संग्रहीत किया जाएगा।
चयन खंड द्वारा मानचित्रण सरणी
Dim sites() As String = {"Stack Overflow",
"Super User",
"Ask Ubuntu",
"Hardware Recommendations"}
Dim query = From x In sites Select x.Length
' result = 14, 10, 10, 24
इनपुट एरे में स्ट्रिंग परिणाम की लंबाई वाली क्वेरी परिणाम गणना करने योग्य वस्तु होगी। इस उदाहरण में यह मान होगा 14, 10, 10, 24. x क्वेरी में पुनरावृत्त चर है जहां इनपुट सरणी से प्रत्येक ऑब्जेक्ट संग्रहीत किया जाएगा।
उत्पादन का आदेश
Dim sites() As String = {"Stack Overflow",
"Super User",
"Ask Ubuntu",
"Hardware Recommendations"}
Dim query = From x In sites
Order By x.Length
' result = "Super User", "Ask Ubuntu", "Stack Overflow", "Hardware Recommendations"
ऑर्डरबी क्लॉज, क्लॉज से लौटाए गए मूल्य द्वारा आउटपुट का आदेश देता है। इस उदाहरण में यह प्रत्येक स्ट्रिंग की लंबाई है। डिफ़ॉल्ट आउटपुट ऑर्डर आरोही है। यदि आपको उतरने की आवश्यकता है तो आप क्लॉज़ के बाद Descending
कीवर्ड निर्दिष्ट कर सकते हैं।
Dim query = From x In sites
Order By x.Length Descending
IEnumerable से शब्दकोश बनाना
' Just setting up the example
Public Class A
Public Property ID as integer
Public Property Name as string
Public Property OtherValue as Object
End Class
Public Sub Example()
'Setup the list of items
Dim originalList As New List(Of A)
originalList.Add(New A() With {.ID = 1, .Name = "Item 1", .OtherValue = "Item 1 Value"})
originalList.Add(New A() With {.ID = 2, .Name = "Item 2", .OtherValue = "Item 2 Value"})
originalList.Add(New A() With {.ID = 3, .Name = "Item 3", .OtherValue = "Item 3 Value"})
'Convert the list to a dictionary based on the ID
Dim dict As Dictionary(Of Integer, A) = originalList.ToDictionary(function(c) c.ID, function(c) c)
'Access Values From The Dictionary
console.Write(dict(1).Name) ' Prints "Item 1"
console.Write(dict(1).OtherValue) ' Prints "Item 1 Value"
End Sub
अलग-अलग मान प्राप्त करना (डिस्टिक्ट विधि का उपयोग करके)
Dim duplicateFruits = New List(Of String) From {"Grape", "Apple", "Grape", "Apple", "Grape"}
'At this point, duplicateFruits.Length = 5
Dim uniqueFruits = duplicateFruits.Distinct();
'Now, uniqueFruits.Count() = 2
'If iterated over at this point, it will contain 1 each of "Grape" and "Apple"