पहले यह प्रभावी रूप से "आंतरिक" अनुक्रम से एक देखने बनाता है, फिर बाहरी अनुक्रम के माध्यम से दोहराता। इसके बाद यह बाहरी अनुक्रम से प्रत्येक कुंजी को देख सकता है और प्रत्येक उचित जोड़ी उत्पन्न कर सकता है। इस (अनदेखी तर्क सत्यापन आदि) की तरह कुछ:
public static IEnumerable<TResult> Join<TOuter, TInner, TKey, TResult>
(this IEnumerable<TOuter> outer,
IEnumerable<TInner> inner,
Func<TOuter, TKey> outerKeySelector,
Func<TInner, TKey> innerKeySelector,
Func<TOuter, TInner, TResult> resultSelector)
{
Lookup<TKey, TInner> lookup = inner.ToLookup(innerKeySelector);
foreach (TOuter outerItem in outer)
{
TKey key = outerKeySelector(outerItem);
foreach (TInner innerItem in lookup[key])
{
yield return resultSelector(outerItem, innerItem);
}
}
}
देखने एक हैश तालिका आंतरिक रूप से चाबी के लिए, इतना है कि यह किसी भी व्यक्ति कुंजी को देखने के लिए सक्षम है का उपयोग करेगा।
स्रोत
2009-10-13 17:44:37
प्रदाता पर निर्भर करता है। –
मेरा मतलब लिंक टू ऑब्जेक्ट्स का उपयोग करते समय था – aattia