【发布时间】:2019-01-09 06:21:02
【问题描述】:
有没有更好的方法在没有 foreach 的情况下编写这个? 我想从 int 类型的 IEnumerable 添加项目(司法管辖区)并转换为包含属性 Ref 的 IList 并且应该在其中设置。
public class TrackDataFilter
{
public TrackDataFilter(IEnumerable<int> firmRef, int? superSectorRef, DateTime from, DateTime to, int userFirmRef) : this()
{
Firms = firmRef.Select(x => new TrackFilterGenericRef { Ref = x, Type = ContentTypes.Firm, Description = "" });
SuperSectorRef = superSectorRef;
From = from;
To = to;
UserFirmRef = userFirmRef;
}
public TrackDataFilter()
{
Workareas = new List<TrackFilterGenericRef>();
Jurisdictions = new List<TrackFilterGenericRef>();
Tags = new List<TrackFilterGenericRef>();
Firms = Enumerable.Empty<TrackFilterGenericRef>();
}
public IList<TrackFilterGenericRef> Jurisdictions { get; set; }
...
}
public class TaxiBriefingFilter
{
public IEnumerable<int> Jurisdictions { get; set; }
...
}
// add items in IEnumerable<int> Jurisdictions into IList<TrackFilterGenericRef>
var filter = new TaxiBriefingFilter();
var dataFilter = new TrackDataFilter(new int[] { companyId }, null, from, to, userFirmRef);
foreach (var jurisdictionRef in filter.Jurisdictions)
{
dataFilter.Jurisdictions.Add(new TrackFilterGenericRef { Ref = jurisdictionRef});
}
var jurisdictions = trackAnalyticsService.GetJurisdictions(dataFilter, maxJurisdictions);
...
【问题讨论】:
标签: c# list foreach filter model