WikiFunctions.Parse.Parsers.GetNamedRefs C# (CSharp) Method

GetNamedRefs() private static method

Extracts a list of all named refs, including condensed used in the input text
private static GetNamedRefs ( string articleText ) : List
articleText string
return List
        private static List<Match> GetNamedRefs(string articleText)
        {
            List<Match> refsList = new List<Match>();
            lock(GetNamedRefsQueueLock)
            {
                // For peformance, use cached result if available: articletext plus List matches
                refsList = GetNamedRefsQueue.FirstOrDefault(q => q.Key.Equals(articleText)).Value;
                if (refsList != null)
                    return refsList;
            }

            refsList = (from Match m in WikiRegexes.NamedReferencesIncludingCondensed.Matches(articleText) select m).ToList();

            lock(GetNamedRefsQueueLock)
            {
                // cache new results, then dequeue oldest if cache full
                GetNamedRefsQueue.Enqueue(new KeyValuePair<string, List<Match>>(articleText,  refsList));
                if (GetNamedRefsQueue.Count > 10)
                    GetNamedRefsQueue.Dequeue();
            }

            return refsList;
        }
Parsers