मैं एक MatchCollection
वस्तु के खिलाफ एक LINQ क्वेरी चलाने के लिए चाहता था, लेकिन पाया के रूप में यह ICollection<T>
को लागू नहीं करता है, सिर्फ ICollection
यह संभव नहीं था लागू करने वर्गों के साथ LINQ का उपयोग करना।गैर सामान्य ICollection
कोड समेकन के संदर्भ में, गैर-जेनेरिक संग्रह के साथ LINQ का उपयोग करने के लिए सबसे अच्छा विकल्प क्या है, बल्कि प्रदर्शन और स्मृति उपयोग दोनों के मामले में?
(यदि रुचि रखते हैं, यहां गैर LINQuified कोड :) कास्ट एक्सटेंशन विधि है जो एक IEnumerable वापस आ जाएगी उपयोग करने के लिए
MatchCollection fieldValues = Regex.Matches(fieldValue, @"(?<id>\d+);#(?<text>[^;|^$]+)");
foreach (Match m in fieldValues)
{
if (m.Groups["text"].Value.Equals(someString))
{
// Do stuff
}
}
किसी कारण से मुझे नहीं लगता था कि यह काम करेगा क्योंकि मिलानकोलेक्शन सामान्य नहीं है। मुझे लगता है कि मैंने कोशिश की होनी चाहिए! संकलक अनुवाद की आपकी व्याख्या बहुत उपयोगी थी। –