如何按包含过滤项目
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;
}
如果我有文本字段的确切字符串,我可以收集项目,但如果我在文本字段中有部分字符串,我需要收集项目。
这是我的精确匹配代码...
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;
}