Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# AzureStorage表查询:生成包含筛选器_C#_Azure_Azure Storage_Azure Table Storage_String Comparison - Fatal编程技术网

C# AzureStorage表查询:生成包含筛选器

C# AzureStorage表查询:生成包含筛选器,c#,azure,azure-storage,azure-table-storage,string-comparison,C#,Azure,Azure Storage,Azure Table Storage,String Comparison,我知道Azure存储在其当前API中没有类似包含的筛选器。但是,我也知道,您可以使用以下代码为字符串构建一个类似contains的过滤器: TableQuery<TableEntity> Query = new TableQuery<TableEntity>() .Where( TableQuery.CombineFilters( TableQuery.Generate

我知道Azure存储在其当前API中没有类似包含的筛选器。但是,我也知道,您可以使用以下代码为字符串构建一个类似contains的过滤器:

            TableQuery<TableEntity> Query = new TableQuery<TableEntity>()
            .Where(
            TableQuery.CombineFilters(
                TableQuery.GenerateFilterCondition("PartitionKey", QueryComparisons.GreaterThanOrEqual, substring),
                TableOperators.And,
                TableQuery.GenerateFilterCondition("PartitionKey", QueryComparisons.LessThan, substring + someValue)
                ));
TableQuery Query=newtablequery()
.在哪里(
TableQuery.CombineFilters(
TableQuery.GenerateFilterCondition(“PartitionKey”,QueryComparisons.GreaterThanOrEqual,子字符串),
表3.以及,
TableQuery.GenerateFilterCondition(“PartitionKey”,QueryComparisons.LessThan,substring+someValue)
));
我的问题是,我应该使用什么作为someValue来使其等效于包含

我似乎在网上找不到一个图表,从c#的词法上可以看出,哪个字符是所有字符的第一个字符。是否有任何理由不这样做,并在客户端进行搜索?我的分区键是定义良好的子组


提前谢谢

它实际上使用
ascii
顺序在过滤器中进行比较

例如,如果
子字符串
良好
,则在第二个过滤器中:

TableQuery.GenerateFilterCondition(“PartitionKey”,QueryComparisons.lesst,“good”+someValue)

你应该把它改成

TableQuery.GenerateFilterCondition("PartitionKey", QueryComparisons.LessThan, "gooe")

无需添加
someValue
。只需将子字符串的最后一个字符替换为下一个ascii字符。

这样的字符就可以正常工作了?TableQuery.GenerateFilterCondition(“PartitionKey”,QueryComparisons.LessThan,substring.Remove(substring.Length-1,1)+(char)((int)substring.Last())+1));