如何按包含过滤项目

How to FilterItems by Contains

如果我有文本字段的确切字符串,我可以收集项目,但如果我在文本字段中有部分字符串,我需要收集项目。

这是我的精确匹配代码...

public static async Task<int> Items_With_String(int appId, string textFieldId, string stringToSearch)
{

    var filter = new Dictionary<string, string>
    {
        {textFieldId, stringToSearch }
    };

    var filteredItems = await Program.podio.ItemService.FilterItems(appId: appId, filters: filter);

    foreach (var item in filteredItems.Items)
    {
        Console.WriteLine($"{stringToSearch} found in {item.Title}");
    }

    return filteredItems.Total;
}

您实际上没有提供 FilterItems 方法的实现。

但通常对于部分匹配,您可以使用 linq 查询并添加 where 带有谓词的子句进行部分匹配。在这里我给你一个例子 它的外观如何,以便您可以将其用于您的列表和过滤器属性。

string filter = "something";
List<MyClass> myList = new List<MyClass>();
// add items to the list
myList.Where(item => item.Contains(filter));
// or for the partial match with a shared beginning
myList.Where(item => item.StartsWith(filter));

希望这对您的案例有所帮助。

您可以使用搜索功能代替 FilterItems。

您可以参考下面link了解更多信息。

https://developers.podio.com/doc/search/search-in-app-4234651

请看样本

                bool isContinue = true;
                var limit = 0;
                var offSet = 0;
                while (isContinue)
                {
                    var items = podio.SearchService.SearchInApp(appId, stringToSearch, limit, offset);
                    offSet = offSet + limit;
                    limit = limit + 100;
                    isContinue = // check if you have value;
                }