LINQ To मंदार और ToLookup में क्या अंतर है? वे एक ही काम करने लगते हैं।
LINQ To मंदार और ToLookup में क्या अंतर है? वे एक ही काम करने लगते हैं।
जवाबों:
एक शब्दकोश एक 1: 1 मानचित्र है (प्रत्येक कुंजी को एक एकल मान पर मैप किया जाता है), और एक शब्दकोश तथ्य के बाद उत्परिवर्तनीय (संपादन योग्य) है।
लुकअप एक 1: कई मैप (बहु-मानचित्र; प्रत्येक कुंजी को IEnumerable<>
उस कुंजी के साथ मानों में मैप किया जाता है), और ILookup<,>
इंटरफ़ेस पर कोई म्यूट नहीं है।
एक साइड नोट के रूप में, आप एक कुंजी पर एक लुकअप (इंडेक्सर के माध्यम से) को क्वेरी कर सकते हैं जो मौजूद नहीं है, और आपको एक खाली अनुक्रम मिलेगा। शब्दकोश के साथ भी ऐसा ही करें और आपको एक अपवाद मिलेगा।
तो: कितने रिकॉर्ड प्रत्येक कुंजी साझा करते हैं?
यह देखने का एक अति सरलीकृत तरीका है कि एक एक के Lookup<TKey,TValue>
लिए लगभग तुलनीय हैDictionary<TKey,IEnumerable<TValue>>
ILookup<,>
या एक फेंकने के लिए एक कार्यान्वयन नि: शुल्क है KeyNotFoundException
। Rx में कार्यान्वयन एक फेंकता है KeyNotFoundException
।
Dictionary<TKey, IEnumerable<TValue>>
सूचियों के शब्दकोश के रूप में वर्णित किया जा सकता है। तो ToLookup()
यह कहने जैसा है: मुझे सूचियों का एक शब्दकोश दें। किसी कारणवश सुनने में यह वर्णन आया कि इस तरह से मुझे सीधे अपने सिर में पहुँचाने में मदद मिली।
टॉडबर्न <TKey, TValue> है जबकि ToLookup <TKey, T1, T2, T3, ...> IGrouping के समान है, लेकिन गणना स्मृति में रहती है।
T1, T2, T3, ...
; ToLookup और ToDictionary (तरीकों खुद को) बहुत ज्यादा एक ही एपीआई है