假设我必须在屏幕上显示值列表
我使用linq
获取列表 Student English Hindi Tamil MArathi
------- --------- ------- ------- ---------
Deepan 56 65 34 45
Mohan 45 34 0 23
Murali 56 89 0 0
假设我在db .....中有这些值。
我不想表明如果(泰米尔语和马拉地语)是0 .....如果两个r都包含0意味着.... 我必须避免使用linq从数据库中获取该行...例如(murali)...但我不想避免Mohan .....请给我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 );
答案 0 :(得分:1)
您可以在一个where
语句中组合几个条件:
.Where(x => x.Marathi !=0 && x.Tamil != 0)
这将仅选择两个条件都通过的条目(意味着Marathi
和Tamil
都不是0
)。
答案 1 :(得分:0)
如果 Lambda 适合您,可以使用此功能。您可以在第一个 Where子句本身中组合所有3个检查,而不是在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();