3

我不知道为什么同时我在 linq 中编译我的查询如下

from c in PriceListPolicies_TBLs
where ((c.CountryCode ?? "VNALL")== "VNALL" ? "VN" : c.CountryCode || 
      (c.CountryCode ?? "THALL") == "THALL" ? "TH" : c.CountryCode) 
select c

给出这个错误

运算符“||” 不能应用于“字符串”和“布尔”类型的操作数

我怎样才能让这个查询工作?

4

3 回答 3

6

尝试这个:

from c in PriceListPolicies_TBLs 
where 
(
  ((c.CountryCode ?? "VNALL") == "VNALL" ? "VN" : c.CountryCode)
  || 
  ((c.CountryCode ?? "THALL") == "THALL" ? "TH" : c.CountryCode)
) 
select c
于 2013-02-21T09:54:15.990 回答
3

||运算符只能应用于boolbool

c.CountryCode || (c.CountryCode ?? "THALL") // is wrong, since c.CountryCode is a string
于 2013-02-21T09:53:53.590 回答
1

根据您的评论,您不需要条件。只需执行以下操作:

var allItems = from c in PriceListPolicies_TBLs
               select c;

foreach (var c in allItems)
{
    if (c.CountryCode == "VNALL")
    {
        c.CountryCode = "VN";
    }
    else if (c.CountryCode == "THALL")
    {
        c.CountryCode = "TH";
    }
}
于 2013-02-21T11:17:41.370 回答