繁体   English   中英

如何在“布尔条件语句”中执行循环?

[英]How can I do a loop within a “boolean conditional statement”?

如何在C#中的条件语句中放置一个循环? 我在下面有一个例子,这可能有助于查询数据有两个原因:它会避免写出每个项目或在整个查询周围进行操作,如果我们假设查询是,则会避免访问列表中每个项目的数据库查询数据库,我们希望避免添加到数据库的命中。 那么如何在条件语句中循环,如if语句或查询语句。 我的观点是,在像Ruby这样的动态语言中它会很容易,但在C#或大多数静态语言中都没有简单的方法。 如果我遗漏任何东西,请告诉我。 谢谢。

List<string> certainTerritorysManagers = GetTerritoryManagers(east);
var AllSales= GetAllSales();
var EastTerritorySales =     (from sale in AllSales
             where sale.manager == manager1 || sale.manager == manager2 || ... etc.
             // *** Is there a way I can stick a foreach loop in the line above so I don't have to list all of these managers?
             // *** Pseudo code might look like: where sale.manager == ANYOF foreach (string manager in aCertainTerritoriesManagers)
             // *** If it was all && statements intead of || statements you could use the term ALLOF
             select sale).ToList();

我想你正在寻找Contains

var EastTerritorySales = 
       (from sale in AllSales 
        where certainTerritoryManagers.Contains(sale.manager) 
        select sale).ToList();

你可以这样做:

var eastTerritorySales =
(from sale in AllSales
where certainTerritorysManagers.Contains(sale.manager)
select sale).ToList();

鉴于某些域名管理器是字符串列表, sale.manager需要是一个字符串。 因此,如果经理是另一个具有属性的类,您将需要执行以下操作:

where certainTerritorysManagers.Contains(sale.manager.Name)

我希望它有所帮助!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM