Unity 6.3
0 онлайн 83 гостей 3 в системе
Вход

SearchExpression.Execute(SearchContext,SearchExpressionExecutionFlags)

Параметры

Параметр Описание
searchContext SearchContext используется для инициализации SearchExpressionContext, который будет инкапсулировать всю информацию относительно оценки выражения.
executionFlags Флаги выполнения, помогающие определить, как оценивать выражение.
c SearchExpressionContext, который будет содержать всю информацию, относящуюся к оценке выражения.

Возвращаемое значение

void Возвращает перечислимый список SearchItem.

Описание

Выполнить SearchEXpression, дающее определенный SearchContext В зависимости от флагов выражение может быть оценено в рабочем потоке (по умолчанию) или в главном потоке. Возвращается перечислимый список 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;
                }
            }
        }
    }
}