【发布时间】:2018-03-27 14:23:32
【问题描述】:
我有以下 foreach 语句,它从我的数组 (customerConfigTypes) 中返回所有值。 我只想返回特定的值。
我想要做的是,如果我的 Array(customerConfigTypes) 的值为“A”而我的模型(m.ConfigurationType) 的值为 A,我只想返回该特定类型。
因此,在最好的上下文中使用“包含”这个词...。最好的方法是什么?
var customerConfigTypes = new
Models.ReportConfiguration.ReportConfigurationType[]
{
ReportConfigurationType.CustomerFlagReport,
ReportConfiguration.ReportConfigurationType.SalesReport,
};
@foreach (var vm in Model.Where(m =>customerConfigTypes.Contains(m.ConfigurationType) &&
m.ReportConfigurationId > 0 ))
{
<div class="title-card @if (!hasCreateReportPermission) {<text> disabled</text> }">
<a class="inner" href="@Url.Action("Index", "ReportsAngular", new { area = "Angular", ReportType="CustomerFlagReport", ConfigurationId=vm.ReportConfigurationId, CanConfigureReports = hasCreateReportPermission })#/">
<i class="fa fa-wrench"></i>
<h3 class="panel-title">@vm.ConfigurationName</h3>
<p>@vm.ConfigurationDescription</p>
</a>
</div>
这是我的模型布局
public class ReportConfigurationViewModel : IReportConfigurationViewModel, IXmlSerializable
{
public int? ReportConfigurationId { get; set; }
public string ConfigurationName { get; set; }
public string ConfigurationDescription { get; set; }
public bool IsTemplate { get; set; }
public ReportConfigurationType ConfigurationType { get; set; }
public String ReportTitle { get; set; }
public virtual IEnumerable<IFilterViewModel> Filters { get; set; }
public IEnumerable<IFilterViewModel> SelectedFilters { get; set; }
public IEnumerable<IReportingColumnViewModel> SelectedColumns { get; set; }
public IEnumerable<IReportSummaryColumnViewModel> SelectedReportSummaryColumns { get; set; }
public IEnumerable<IReportGroupingColumnViewModel> SelectedReportGroupingColumns { get; set; }
public IEnumerable<IReportSortingColumnViewModel> SelectedReportSortingColumns { get; set; }
public string ModeType { get; set; }
public bool SuppressReportSummaryTitles { get; set; }
public bool SuppressPageSummaryTitles { get; set; }
public bool SuppressGroupSummaryTitles { get; set; }
public System.Xml.Schema.XmlSchema GetSchema() { return null; }
【问题讨论】:
-
如果找到多个匹配项怎么办?
-
请发布您的模型布局
-
如果您只期待一个结果,为什么还要使用
foreach? -
因为我的模型可以有多个我需要在剃刀语法中显示的那种类型的结果。
标签: c# linq model-view-controller