Как избежать двух столбцов, содержащих 0 в linq
Предположим, что я должен показать список значений на экране
я беру список с помощью linq
Student English Hindi Tamil MArathi
------- --------- ------- ------- ---------
Deepan 56 65 34 45
Mohan 45 34 0 23
Murali 56 89 0 0
Предположим, что у меня есть эти значения в дБ.....
Я не хочу показывать, если (тамильский и маратхи) равен 0..... если оба r содержат 0, значит.... я должен избегать этой строки при получении из базы данных, используя linq ... например (murali)... но я не хочу избегать Мохан..... пожалуйста, дайте мне запрос linq
Теперь я попробовал это
var ulist = (from c in CustomerTransactions
where c.TransTypeID==12
select new
{
Student=c.Student,
English=c.English,
Hindi=c.Hindi,
Tamil=c.Tamil,
Marathi=c.Marathi
}).ToList().OrderBy(b => b.Student).Where(x => x.Marathi!=0 );
2 ответа
Вы можете объединить несколько условий в одном where
-заявление:
.Where(x => x.Marathi !=0 && x.Tamil != 0)
При этом будут выбраны только те записи, для которых выполнены оба условия (т.е. Marathi
а также Tamil
не 0
).
Это то, что вы можете использовать, если Lambda вам подходит. Вы можете объединить все 3 проверки в первом предложении Where вместо указания условий в 2 разных местах.
CustomerTransactions.Where(c => c.TransTypeID==12 && !(c.Marathi == 0 && c.Tamil == 0))
.OrderBy(c => c.Student)
.Select(c => new {
Student=c.Student,
English=c.English,
Hindi=c.Hindi,
Tamil=c.Tamil,
Marathi=c.Marathi
}).ToList();