版本:Unity 6 (6000.0)
语言英语
  • C#

SearchExpression.ProcessValues

建议更改

成功!

感谢你帮助我们提高 Unity 文档的质量。尽管我们无法接受所有投稿,但我们确实会阅读用户提出的每条建议变更,并在适用的情况下进行更新。

关闭

提交失败

由于某种原因,无法提交你的建议变更。请在几分钟后重试。感谢你花时间帮助我们提高 Unity 文档的质量。

关闭

取消

声明

public static IEnumerable<SearchItem> ProcessValues(IEnumerable<SearchItem> items, string outputValueFieldName, Func<SearchItem,T> processHandler);

参数

items 要转换的项目组。
outputValueFieldName SearchItem 中用于写入值的字段的名称。如果为 null,则写入项目内部值。
processHandler 变换器函数,需要为项目返回新值。

返回

IEnumerable<SearchItem>生成已转换的新项目列表。

说明

获取一组 SearchItem,并将 processHandler 变换器函数应用于项目以设置其内部值或 outputValueField。请注意,这些项目在主线程中处理,因此允许你解决任何类型的选择器。

[Description("Convert arguments to a string allowing you to format the result.")]
[SearchExpressionEvaluator(SearchExpressionType.Selector | SearchExpressionType.Text, SearchExpressionType.Iterable | SearchExpressionType.Literal | SearchExpressionType.Variadic)]
[SearchExpressionEvaluatorSignatureOverload(SearchExpressionType.Iterable | SearchExpressionType.Literal | SearchExpressionType.Variadic)]
public static IEnumerable<SearchItem> FormatItems(SearchExpressionContext c)
{
    var skipCount = 0;
    if (SearchExpression.GetFormatString(c.args[0], out var formatStr))
        skipCount++;
    var items = c.args.Skip(skipCount).SelectMany(e => e.Execute(c));
    var dataSet = SearchExpression.ProcessValues(items, null, item => SearchExpression.FormatItem(c.search, item, formatStr));
    return dataSet;
}