private static List <T> RunPredicate <T>(frIPredicate predicate, T[] enumerable) where T : frMember { var result = new List <T>(); RunPredicate(predicate, enumerable, result); return(result); }
public frField[] GetDeclaredFieldsByPredicate(frIPredicate predicate) { EnsureInitialized(); frField[] result; if (!_declaredPredicateToFields.TryGetValue(predicate, out result)) { _declaredPredicateToFields[predicate] = result = RunPredicate(predicate, Fields).ToArray(); } return(result); }
private static void RunPredicate <T>(frIPredicate predicate, T[] enumerable, List <T> result) where T : frMember { foreach (T value in enumerable) { if (predicate.IsMatch(value)) { result.Add(value); } } }
public frMethod[] GetFlattenedMethodsByPredicate(frIPredicate predicate) { EnsureInitialized(); frMethod[] result; if (!_flattenedPredicateToMethods.TryGetValue(predicate, out result)) { var members = new List <frMethod>(); frType type = this; while (type != null) { RunPredicate(predicate, type.Methods, members); type = type.Parent; } _flattenedPredicateToMethods[predicate] = result = members.ToArray(); } return(result); }
public frField[] GetFlattenedFieldsByPredicate(frIPredicate predicate) { EnsureInitialized(); frField[] result; if (!_flattenedPredicateToFields.TryGetValue(predicate, out result)) { var fields = new List <frField>(); frType type = this; while (type != null) { RunPredicate(predicate, type.Fields, fields); type = type.Parent; } _flattenedPredicateToFields[predicate] = result = fields.ToArray(); } return(result); }