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# 使用列表上的TableQuery.CombineFilters执行AND操作_C#_Azure_Azure Table Storage_Azure Tablequery - Fatal编程技术网

C# 使用列表上的TableQuery.CombineFilters执行AND操作

C# 使用列表上的TableQuery.CombineFilters执行AND操作,c#,azure,azure-table-storage,azure-tablequery,C#,Azure,Azure Table Storage,Azure Tablequery,在使用AND和foreach循环附加条件的情况下,如何为myQuery分配初始值 我正在努力做到以下几点: string myQuery = string.empty; foreach (string myCondition in myConditionLists) { myQuery = TableQuery.CombineFilters( myQuery, TableOperators.And, TableQuery.GenerateFilterCo

在使用AND和foreach循环附加条件的情况下,如何为myQuery分配初始值

我正在努力做到以下几点:

string myQuery = string.empty;

foreach (string myCondition in myConditionLists)
{
    myQuery = TableQuery.CombineFilters(
        myQuery,
    TableOperators.And,
    TableQuery.GenerateFilterCondition(nameof(MyClass.MyProperty), 
        QueryComparisons.NotEqual, myCondition));
}

调试时,我看到一个“()”的初始语句,它似乎不正确。另一种方法是将query的第一个元素分配到myQuery中,并从第二个元素开始增长。有没有一种优雅的方法可以做到这一点?

您可以指定一个整数值,并在循环中为每个迭代添加1。当它等于1时,将初始值设置为myQuery字符串

示例代码如下:

        static void Main(string[] args)
        {
            CloudStorageAccount storageAccount = new CloudStorageAccount(new Microsoft.WindowsAzure.Storage.Auth.StorageCredentials("your_account", "your_key"),true);

            // Create the table client.
            CloudTableClient tableClient = storageAccount.CreateCloudTableClient();

            // Create the CloudTable object that represents the "people" table.
            CloudTable table = tableClient.GetTableReference("people");

            string myQuery = string.Empty;

            List<string> myConditionLists = new List<string>();
            myConditionLists.Add("Ben1");
            myConditionLists.Add("Ben2");
            myConditionLists.Add("Ben3");
            myConditionLists.Add("Ben4");
            myConditionLists.Add("Ben5");

            //specify an integer value
            int i = 0;

            foreach (string myCondition in myConditionLists)
            {
                i++;
                //if i == 1, specify the initial value to the myQuery string.
                if (i == 1) { myQuery = TableQuery.GenerateFilterCondition("RowKey", QueryComparisons.NotEqual, myCondition); }
                else
                {
                    myQuery = TableQuery.CombineFilters(
                        myQuery,
                        TableOperators.And,
                        TableQuery.GenerateFilterCondition("RowKey", QueryComparisons.NotEqual, myCondition)
                        );
                }
            }

            TableQuery<CustomerEntity> query = new TableQuery<CustomerEntity>().Where(myQuery);

            foreach (CustomerEntity entity in table.ExecuteQuery(query))
            {
                Console.WriteLine("{0}, {1}\t{2}\t{3}", entity.PartitionKey, entity.RowKey,
                    entity.Email, entity.PhoneNumber);
            }


            Console.WriteLine("---completed---");
            Console.ReadLine();
        }
static void Main(字符串[]args)
{
CloudStorageAccount storageAccount=新的CloudStorageAccount(新的Microsoft.WindowsAzure.Storage.Auth.StorageCredentials(“您的\u帐户”、“您的\u密钥”),true);
//创建表客户端。
CloudTableClient tableClient=storageAccount.CreateCloudTableClient();
//创建表示“人员”表的CloudTable对象。
CloudTable=tableClient.GetTableReference(“人”);
string myQuery=string.Empty;
List myConditionLists=新列表();
MyConditionList.添加(“Ben1”);
MyConditionList.添加(“Ben2”);
MyConditionList.添加(“Ben3”);
MyConditionList.添加(“Ben4”);
MyConditionList.添加(“Ben5”);
//指定一个整数值
int i=0;
foreach(myconditionlist中的字符串myCondition)
{
i++;
//如果i==1,则指定myQuery字符串的初始值。
如果(i==1){myQuery=TableQuery.GenerateFilterCondition(“RowKey”,QueryComparisons.NotEqual,myCondition);}
其他的
{
myQuery=TableQuery.CombineFilters(
我的疑问,
表3.以及,
TableQuery.GenerateFilterCondition(“行键”,QueryComparisons.NotEqual,myCondition)
);
}
}
TableQuery=新建TableQuery()。其中(myQuery);
foreach(表中的CustomerEntity实体。ExecuteQuery(查询))
{
Console.WriteLine(“{0},{1}\t{2}\t{3}”,entity.PartitionKey,entity.RowKey,
实体。电子邮件,实体。电话号码);
}
Console.WriteLine(“--completed--”);
Console.ReadLine();
}
我的桌子:

测试结果:


您好,下面的答案对您有效吗?初步测试表明它有效,但我将进行更多测试以确认。有任何更新吗?:)