element | 单个测试对象。 |
bool 如果对象通过查询,则返回 true,否则返回 false。
在单个对象上测试查询。如果测试通过,则返回 true。
using System.Collections.Generic; using UnityEditor; using UnityEditor.Search; using UnityEngine; static class Example_ParsedQuery_Test { static List<MyObjectType> s_Data; [MenuItem("Examples/ParsedQuery/Test")] public static void RunExample() { // Set up the query engine var queryEngine = new QueryEngine<MyObjectType>(); queryEngine.AddFilter("id", myObj => myObj.id); queryEngine.SetSearchDataCallback(myObj => new[] { myObj.id.ToString(), myObj.name }); s_Data = new List<MyObjectType>() { new MyObjectType { id = 0, name = "Test 1", position = new Vector2(0, 0), active = false }, new MyObjectType { id = 1, name = "Test 2", position = new Vector2(0, 1), active = true } }; // Test if a single element passes the query. var query = queryEngine.ParseQuery("id=1"); var success = query.Test(s_Data[0]); Debug.Assert(!success, $"Test 1 should not pass the test."); success = query.Test(s_Data[1]); Debug.Assert(success, $"Test 2 should pass the test."); } class MyObjectType { public int id { get; set; } public string name { get; set; } = string.Empty; public Vector2 position { get; set; } = Vector2.zero; public bool active { get; set; } public override string ToString() { return $"({id}, {name}, ({position.x}, {position.y}), {active})"; } } }