मैं वर्तमान में LINQ पर ब्रश कर रहा हूं let
और into
कीवर्ड के उपयोग और उसके बीच के अंतर को समझने की कोशिश कर रहा हूं । अब तक let
कीवर्ड into
मेरी समझ से बेहतर है, जहां तक मेरी समझ जाती है।
into
कीवर्ड अनिवार्य रूप से एक एक प्रक्षेपण के बाद एक प्रश्न जारी रखने के लिए अनुमति देता है। (बस स्पष्ट रूप से बताना चाहता हूं कि मैं समूह में शामिल होने के लिए एक का उल्लेख नहीं कर रहा हूं।)
नामों की एक सरणी को देखते हुए यह निम्नलिखित को करने की अनुमति देता है:
var intoQuery =
from n in names
select Regex.Replace(n, "[aeiou]", "")
into noVowel
where noVowel.Length > 2
select noVowel;
यह चयन का परिणाम लेता है और में यह स्थानों noVowel
चर जो तब एक अतिरिक्त पेश करने की अनुमति देता है where
, orderby
और select
खंड। एक बार noVowel
चर बनाने के बाद, चर n
अब उपलब्ध नहीं है।
let
कीवर्ड, दूसरे हाथ पर, अस्थायी गुमनाम प्रकार का उपयोग करता है आप एक समय में एक से अधिक चर का पुन: उपयोग करने की अनुमति।
आप निम्न कार्य कर सकते हैं:
var letQuery =
from n in names
let noVowel = Regex.Replace(n, "[aeiou]", "")
where noVowel.Length > 2
select noVowel;
दोनों चर noVowel
और n
चर उपयोग के लिए उपलब्ध हैं (भले ही मैंने इस मामले में इसका उपयोग नहीं किया है)।
जब मैं अंतर देख सकता हूं, तो मैं यह नहीं समझ सकता कि कोई व्यक्ति into
कीवर्ड पर कीवर्ड का उपयोग क्यों करना चाहेगा let
जब तक कि कोई स्पष्ट रूप से यह सुनिश्चित नहीं करना चाहता था कि पिछले चर क्वेरी के बाद के भागों में उपयोग करने में सक्षम नहीं थे।
तो, क्या कोई अच्छा कारण है कि दोनों कीवर्ड मौजूद हैं?
let
उदाहरण में एक टाइपो है - उस मामले मेंwhere noVowel
क्या हैnoVowel
?