var filterModel = new List<FilterModel>()
{
new FilterModel {Price = 1},
new FilterModel {Price = 1},
new FilterModel {Price = 15},
new FilterModel {Price = 20},
new FilterModel {Price = 410},
new FilterModel {Price = 9511},
new FilterModel {Price = 9511},
new FilterModel {Price = 252},
new FilterModel {Price = 555},
new FilterModel {Price = 602}
};
var priceList = new List<PriceList>
{
new PriceList{MinPrice = 0,MaxPrice = 30},
new PriceList{MinPrice = 70,MaxPrice = 130},
new PriceList{MinPrice = 200,MaxPrice = 250},
new PriceList{MinPrice = 400,MaxPrice = 600},
//etc.etc. continue...
};
У меня есть 2 модели. Я пытаюсь использовать LINQ. Мой код работает. Что было бы самым коротким (самым чистым) способом сделать это?Использование linq позволяет выбрать несколько значений цен
var newFilterModel = new List<FilterModel>();
foreach (var t in priceList)
{
newFilterModel.AddRange(filterModel
.Where(x => x.Price > t.MinPrice && x.Price < t.MaxPrice)
.ToList());
}
var distinctNewFilterModel = newFilterModel.Select(p=>new { p.Price})
.Distinct().ToList();
что вы имеете в виду _shortes (самый чистый) путь_? – Grundy
Не использовать foreach, если это возможно. – user3583183
вы можете использовать [предложение соединения] (https://msdn.microsoft.com/en-us/library/bb311040.aspx) и [это] (https://msdn.microsoft.com/en-us/library/ bb882533.aspx) – Grundy