重庆网站建站建设平台,网站首页设计公司,网站空间租用协议,中华室内设计网伍飒爽我们常常需要的另一类查询是确定数据是否满足某个条件#xff0c;或者确保所有数据都满足某个条件。例如#xff0c;需要确定某个产品是否已经脱销(库存为 0)#xff0c;或者是否发生了某个交易。LINQ 提供了两个布尔方法#xff1a;Any()和 All()#xff0c;它们可以快速… 我们常常需要的另一类查询是确定数据是否满足某个条件或者确保所有数据都满足某个条件。例如需要确定某个产品是否已经脱销(库存为 0)或者是否发生了某个交易。LINQ 提供了两个布尔方法Any()和 All()它们可以快速确定对于数据而言某个条件是 true 还是 false。因此很容易地找到数据如下面的示例所示。按照下面的步骤在Visual Studio 中创建示例1创建一个新的控制台应用程序。2创建 Customer 类的代码和初始化顾客列表ListCustomercustomers的代码。3在Main() 方法中在 customers 列表初始化和查询声明后删除处理循环输入如下所示的代码bool anyUSA customers.Any(c c.Country USA);
if (anyUSA)
{Console.WriteLine(Some customers are in the USA);
}
else
{Console.WriteLine(No customers are in the USA);
}
bool allAsia customers.All(c c.Region Asia);
if (allAsia)
{Console.WriteLine(All customers are in Asia);
}
else
{Console.WriteLine(Not all customers are in Asia);
}4编译并执行程序将看到一些消息指出一些顾客来自美国并不是所有的顾客都来自亚洲Some customers are in the USA
Not all customers are in Asia
Program finished, press Enter/Return to continue:示例的说明Customer 类和 customers 列表的初始化与前面例子中的相同。在第一个查询语句中调用了 Any() 方法用一个简单的 Lambda 表达式检查 Customer Country 字段的值是不是USA:bool anyUSA customers.Any(c c.Country USA);LINQ方法Any() 把传送给它的 Lambda 表达式 cc.CountryUSA应用于customers 列表中的所有数据如果对于列表中的任意顾客Lambda 表达式是 true就返回 true。接着检查 Any() 方法返回的布尔结果变量输出一个消息显示查询的结果 Any()方法虽然仅返回 true 或 false但它会执行一个查询得到 true 或 false 结果):if (anyUSA)
{Console.WriteLine(Some customers are in the USA);
}
else
{Console.WriteLine(No customers are in the USA);
}虽然可以通过一些巧妙的代码使这个消息更紧凑一些但这里的代码比较直观便于理解。anyUSA 设为 true 因为数据集中的确有顾客居住在美国所以看到了消息 Some customers are in the USA.在下一个查询语句中调用了 AII() 方法利用另一个简单的 Lambda 表达式确定是否所有的顾客都来自亚洲:bool allAsia customers.All(c c.Region Asia);LINQ 方法All() 把 Lambda 表达式应用于数据集并返回 false因为有一些顾客不是来自亚洲。然后根据 allAsia 的值返回相应的消息。 微信公众号 DotNet讲堂