searchContext | 用于初始化 SearchExpressionContext 的 SearchContext,SearchExpressionContext 将封装与表达式求值相关的所有信息。 |
executionFlags | 执行标志,有助于定义如何求值表达式。 |
c | 将封装与表达式求值相关的所有信息的 SearchExpressionContext。 |
void 返回一个可枚举的 SearchItem 列表。
执行给定特定 SearchContext 的 SearchEXpression,根据标志,表达式可能在工作线程(默认)或主线程中进行求值。它返回一个 SearchItem 的可枚举列表。
[SearchExpressionEvaluator(SearchExpressionType.Iterable | SearchExpressionType.Variadic)] [SearchExpressionEvaluatorSignatureOverload(SearchExpressionType.Number, SearchExpressionType.Iterable | SearchExpressionType.Variadic)] [Description("Extract and returns the X first results for each expression.")] public static IEnumerable<SearchItem> TakeXFirst(SearchExpressionContext c) { var argIndex = 0; var takeNumber = 1; if (c.args[0].types.HasFlag(SearchExpressionType.Number)) { ++argIndex; takeNumber = Math.Max((int)(c.args[0].GetNumberValue(takeNumber)), 0); } for ( ; argIndex < c.args.Length; ++argIndex) { var iterable = c.args[argIndex].Execute(c); var taken = 0; foreach (var item in iterable) { if (item == null) yield return null; else { yield return item; ++taken; if (taken == takeNumber) { c.Break(); break; } } } } }