dec*_*der 2 c# linq asp.net-mvc
我的控制器代码如下
ViewBag.Districts = (from a in _dbContext.DISTRICTS
select new ComboItem {
ID = a.DISTRICT_ID,
Name = a.DISTRICT_NAME
}
).ToList();
Run Code Online (Sandbox Code Playgroud)
我的Razor View代码如下
@foreach (var dist in ViewBag.Districts)
{
if (item.DISTRICT_ID == dist.ID)
{
@dist.Name
}
}
Run Code Online (Sandbox Code Playgroud)
有没有一种方法可以在 ViewBag.Districts 中找到类似ViewBag.Districts.where(m=>m.ID==item.DISTRICT_ID.
或 linq 表达式的项目,以便我可以避免循环。任何人帮助我都非常感激。
Viewbag是动态的,因此编译器将无法识别其实际类型,因此您需要像这样的显式类型转换才能使用可枚举方法:-
((IEnumerable<ComboItem>)ViewBag.Districts).Where(x => x.ID == item.DISTRICT_ID);
Run Code Online (Sandbox Code Playgroud)
我假设您想在您的 中使用它View,而且foreach如果没有显式转换,您发布的循环将无法工作:-
@foreach (var dist in (IEnumerable<ComboItem>)ViewBag.Districts)
{
if (item.DISTRICT_ID == dist.ID)
{
@dist.Name
}
}
Run Code Online (Sandbox Code Playgroud)