过滤器列表,其中object属性等于字符串

时间:2014-10-30 11:44:08

标签: c# linq where

我试图过滤一个列表,其中对象属性等于所选下拉列表中的字符串,但我无法正确使用语法。

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();
}

3 个答案:

答案 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