如何在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();
答案 0 :(得分:5)
我认为您正在寻找Contains
:
var EastTerritorySales =
(from sale in AllSales
where certainTerritoryManagers.Contains(sale.manager)
select sale).ToList();
答案 1 :(得分:3)
您可以执行以下操作:
var eastTerritorySales =
(from sale in AllSales
where certainTerritorysManagers.Contains(sale.manager)
select sale).ToList();
鉴于某些域名管理器是字符串列表, sale.manager 需要是一个字符串。 因此,如果经理是另一个具有属性的类,则需要执行以下操作:
where certainTerritorysManagers.Contains(sale.manager.Name)
我希望它有所帮助!