我知道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使其等同于包含?
我似乎在网上找不到一个图表,该图表按字母顺序显示C#中所有字符的第一个字符。有没有理由不这样做,并且在客户端进行搜索?我的partitionKey是定义明确的子组。
谢谢!
答案 0 :(得分:1)
它实际上使用ascii
顺序在过滤器中进行比较。
例如,如果substring
是good
,则在第二个过滤器中:
TableQuery.GenerateFilterCondition("PartitionKey", QueryComparisons.LessThan, "good" + someValue)
,
您应该将其更改为
TableQuery.GenerateFilterCondition("PartitionKey", QueryComparisons.LessThan, "gooe")
无需添加someValue
。只需将您的子字符串的最后一个字符替换为下一个ascii字符即可。