【发布时间】:2011-11-01 20:12:44
【问题描述】:
我正在尝试从众多下拉列表中获取值并根据所选选项构建 where 语句。如果它们没有被选中,那么它们应该从 select 语句中排除。
这就是我本来应该这样做的,但我认为使用 linq 无法以这种方式完成。
IEnumerable<IGrouping<string, Forest>> treeQuery =
from trees in Forest
if (ddlType1.SelectedValue!=null)
{
string strWhere += trees.Type1 == ddlType1.SelectedValue
}
else if (ddlType2.SelectedValue!=null)
{
string strWhere += trees.Type2 == ddlType2.SelectedValue
}
where strWhere
orderby trees.Nuts
group trees by trees.TrunkColour;
任何帮助将不胜感激。
这是我在...中添加示例之前的代码
IEnumerable<IGrouping<string, Forest>> treeQuery =
from trees in Forest
where trees.Type1 == "oak"
orderby trees.Nuts
group trees by trees.TrunkColour;
【问题讨论】:
-
你的第二个例子是在我认为你想测试相等性的地方进行分配,即你有
=,而我认为你的意思是== -
如果用户同时从 ddlType1 和 ddlType2 中选择一个值,是否应该按照您的示例忽略 ddlType2?