Предположим, что AgeList
, на который вы ссылаетесь, было перечислением, подобным этому:
public enum AgeList
{
_0to5 = 0,
_6to10 = 1,
_11to15 = 2,
_16to20 = 3,
_21to25 = 4,
_26to30 = 5,
_31to35 = 6,
_36to40 = 7,
}
Я думаю, что вы хотите сопоставить BuildYear
с одним из перечисленных выше, и мы можем наблюдать, как они go в пятерках. Итак, мы могли бы сделать:
var yearNow = 2020;
var buildYear = 2019;
var ageGroupNumber = (yearNow - buildYear) / 5; // 0
var ageGroup = (AgeList) ageGroupNumber; // _0to5
Так могли бы мы тогда сделать что-то вроде следующего?
Ids = queryObj.AgeCategory
.SelectMany(category => // For every category :
queryRecord.Where(v => // Select the items in this category :
(DateTime.Now.Year - v.BuildYear) / 5 == (int) category
)
.Select(s => s.Id)
);
Я не знаю, поможет ли это вам, или я правильно понял вашу проблему, но, возможно, это даст вам некоторые идеи.