मैं वर्तमान में 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?