LINQ(如果在何处条件下)

本文关键字:条件下 在何处 如果 LINQ | 更新日期: 2023-09-27 17:58:36

我想知道如果选中复选框,是否可以在LINQ中只接受where条件。

var y = from x in db.RandomTable
        where /*??if checkbox.Checked=true??*/x.RandomInteger == 0
        select x;

LINQ(如果在何处条件下)

var y = from x in db.RandomTable
    where !checkBox.Checked || x.RandomInteger == 0
    select x;

要创建清晰的代码,我将进入语法方向:

var q = db.RandomTable as IQueryable;
if (checkBox.Checked)
{
    q = q.Where(/* condition */);
}
var y = q.Select(/* whatever you want to select */);

以下是的操作方法

IQueryable qry = db.RandomTable;
if (Checkbox.Checked) qry = qry.Where( x => x.RandomInteger == 0);
var result == qry.ToArray();
var checked = checkbox.Checked;
var y = from x in db.RandomTable
                where !checked || (checked && x.RandomInteger == 0)
                select x;