我知道 Azure 存储当前的 API 中没有包含类似的过滤器。但是,我也知道您可以使用如下代码构建一个包含类似字符串的过滤器:
TableQuery<TableEntity> Query = new TableQuery<TableEntity>()
.Where(
TableQuery.CombineFilters(
TableQuery.GenerateFilterCondition("PartitionKey", QueryComparisons.GreaterThanOrEqual, substring),
TableOperators.And,
TableQuery.GenerateFilterCondition("PartitionKey", QueryComparisons.LessThan, substring + someValue)
));
我的问题是我应该使用什么作为 someValue 来使其等同于 contains?
我似乎无法在网上找到一个图表来指示 C# 的所有字符的第一个字符是什么字符。有什么理由不这样做,并在客户端进行搜索?我的partitionKey是定义明确的子组。
提前致谢!
最佳答案
它实际上使用 ascii
顺序在过滤器中进行比较。
例如,如果子字符串
为good
,则在第二个过滤器中:
TableQuery.GenerateFilterCondition("PartitionKey", QueryComparisons.LessThan, "good"+ someValue)
,
你应该将其更改为
TableQuery.GenerateFilterCondition("PartitionKey", QueryComparisons.LessThan, "gooe")
无需添加someValue
。只需将子字符串的最后一个字符替换为下一个 ascii 字符即可。
关于c# - Azure存储表查询: Building a Contains Filter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64283565/