我非常擅长使用linq并且无法将以下双重foreach重写为linq查询
@Override
protected void onPostCreate(Bundle savedInstanceState) {
super.onPostCreate(savedInstanceState);
mDrawerToggle.syncState();
}
答案 0 :(得分:5)
首先翻译内部循环:
foreach(var country in europe)
{
countries.AddRange (
from europeanCountry in unitedKingdom
where country.language = europeanCountry.language
select country.language);
}
然后翻译外部循环:
countries.AddRange (
from country in europe
from europeanCountry in unitedKingdom
where country.language = europeanCountry.language
select country.language )
然后意识到你正在做一个过滤的交叉产品,这在逻辑上是一个连接:
countries.AddRange (
from country in europe
join europeanCountry in unitedKingdom
on country.language equals europeanCountry.language
select country.language
)
现在,我注意到可能有更有效和合理的方法来构建此查询。 "是否有更好的方法来构建此查询?"不是你问的问题; "如何将循环转换为查询?"是你暗示的问题 - 我注意到实际上没有问过任何问题。
你一次一次循环。将每个循环正确翻译,然后转到下一个。