我试图过滤一个列表,其中对象属性等于所选下拉列表中的字符串,但我无法正确使用语法。
SearchResults = FPRList.FixedPriceRepairList;
if (ServiceTypeFilterON) {
SearchResults = SearchResults.Where(fpr => fpr.SvcDescription = ddlServiceType.SelectedItem.Text);
}
修改编辑 这样做的伎俩!!忘记比较而不是赋值,并添加.ToList()。 检查ServiceTypeFilterON布尔值,表明ddlServiceType.SelectedItem不是null btw。
SearchResults = FPRList.FixedPriceRepairList;
if (ServiceTypeFilterON) {
SearchResults = SearchResults.Where(fpr => fpr.SvcDescription == ddlServiceType.SelectedItem.Text).ToList();
}
答案 0 :(得分:5)
您必须比较值(==
),而不是分配它们(=
):
SearchResults = SearchResults.Where(fpr => fpr.SvcDescription == ddlServiceType.SelectedItem.Text);
或
SearchResults = SearchResults.Where(fpr => string.Equals(fpr.SvcDescription, ddlServiceType.SelectedItem.Text));
在致电之前,请确保ddlServiceType.SelectedItem
不是null
。
答案 1 :(得分:2)
您正在检查是否相等,因此它应为==
。
fpr.SvcDescription == ddlServiceType.SelectedItem.Text
单个=
是一个赋值运算符,例如第一行中的赋值运算符
SearchResults = FPRList.FixedPriceRepairList;
您正在为FPRList.FixedPriceRepairList
变量分配SearchResults
。
答案 2 :(得分:1)
您错过了双==
fpr.SvcDescription == ddlServiceType.SelectedItem.Text