Пример #1
0
        public IEnumerable <DogeSymbol> ResolveSymbolCandidates(IList <string> name,
                                                                Predicate <DogeSymbol> symbolConditions,
                                                                Predicate <DogeSymbolTableType> symbolTableTypeCondition)
        {
            var candidates =
                SymbolTables
                .Where(x =>
                       symbolTableTypeCondition(x.Value.SymbolTableType))
                .SelectMany(x =>
                            x.Value.ResolveSymbolCandidates(name, symbolConditions, symbolTableTypeCondition));

            if (symbolTableTypeCondition(SymbolTableType))
            {
                candidates = candidates
                             .Concat(Symbols
                                     .Select(x => x.Value)
                                     .Where(x =>
                                            x.FullName.EndsWith(name) &&
                                            symbolConditions(x)));
            }

            return(candidates);
        }