Linq左右括号不匹配
Linq opening and closing parentheses does not match
我有这个代码:
using (Entities db = new Entities())
{
refer = db.Refferals.Where(r =>
r.RefferalDetails.Any(rd =>
(Name.Contains(rd.Name) || rd.Name.Contains(Name) || LastName.Contains(rd.LastName) || rd.LastName.Contains(LastName)
|| Company.Contains(r.Company) || r.Company.Contains(Company)
Mobile.Contains(rd.Mobile) || rd.Mobile.Contains(Mobile))) &&
Mobile.Length > 9 && Name.Length > 1 && LastName.Length > 1 && Company.Length > 2
).ToArray();
}
虽然括号数是正确的,但小编提出多了一个括号。
我尝试重新启动 Visual Studio 但还是一样。
尝试在 r.Company.Contains(Company)
和 Mobile.Contains(rd.Mobile)
之间添加缺失的 ||
。
并修复了缩进,这样更容易看出问题所在。当我缩进它时,缺少的运算符像拇指一样突出,很容易看出括号是如何工作的。
using (Entities db = new Entities())
{
refer = db.Refferals.Where(r =>
r.RefferalDetails.Any(rd =>
(
Name.Contains(rd.Name)
|| rd.Name.Contains(Name)
|| LastName.Contains(rd.LastName)
|| rd.LastName.Contains(LastName)
|| Company.Contains(r.Company)
|| r.Company.Contains(Company)
|| /* <-- ADDED OR OPERATOR HERE */
Mobile.Contains(rd.Mobile)
|| rd.Mobile.Contains(Mobile)
)
)
&& Mobile.Length > 9
&& Name.Length > 1
&& LastName.Length > 1
&& Company.Length > 2
).ToArray();
}
Mobile.Contains(rd.Mobile)
前少了一个**||**
refer = db.Refferals.Where
(
r => r.RefferalDetails.Any
(
rd =>
(
Name.Contains(rd.Name) || rd.Name.Contains(Name) || LastName.Contains(rd.LastName) || rd.LastName.Contains(LastName)
|| Company.Contains(r.Company) || r.Company.Contains(Company)
|| Mobile.Contains(rd.Mobile) || rd.Mobile.Contains(Mobile)
)
)
&& Mobile.Length > 9 && Name.Length > 1 && LastName.Length > 1 && Company.Length > 2
).ToArray();
如果没有 运行 代码,您似乎会进行某种一元选择 (rd)。我建议您开始重构代码并将每个条件分解为一部分...
我有这个代码:
using (Entities db = new Entities())
{
refer = db.Refferals.Where(r =>
r.RefferalDetails.Any(rd =>
(Name.Contains(rd.Name) || rd.Name.Contains(Name) || LastName.Contains(rd.LastName) || rd.LastName.Contains(LastName)
|| Company.Contains(r.Company) || r.Company.Contains(Company)
Mobile.Contains(rd.Mobile) || rd.Mobile.Contains(Mobile))) &&
Mobile.Length > 9 && Name.Length > 1 && LastName.Length > 1 && Company.Length > 2
).ToArray();
}
虽然括号数是正确的,但小编提出多了一个括号。
我尝试重新启动 Visual Studio 但还是一样。
尝试在 r.Company.Contains(Company)
和 Mobile.Contains(rd.Mobile)
之间添加缺失的 ||
。
并修复了缩进,这样更容易看出问题所在。当我缩进它时,缺少的运算符像拇指一样突出,很容易看出括号是如何工作的。
using (Entities db = new Entities())
{
refer = db.Refferals.Where(r =>
r.RefferalDetails.Any(rd =>
(
Name.Contains(rd.Name)
|| rd.Name.Contains(Name)
|| LastName.Contains(rd.LastName)
|| rd.LastName.Contains(LastName)
|| Company.Contains(r.Company)
|| r.Company.Contains(Company)
|| /* <-- ADDED OR OPERATOR HERE */
Mobile.Contains(rd.Mobile)
|| rd.Mobile.Contains(Mobile)
)
)
&& Mobile.Length > 9
&& Name.Length > 1
&& LastName.Length > 1
&& Company.Length > 2
).ToArray();
}
Mobile.Contains(rd.Mobile)
前少了一个**||**refer = db.Refferals.Where
(
r => r.RefferalDetails.Any
(
rd =>
(
Name.Contains(rd.Name) || rd.Name.Contains(Name) || LastName.Contains(rd.LastName) || rd.LastName.Contains(LastName)
|| Company.Contains(r.Company) || r.Company.Contains(Company)
|| Mobile.Contains(rd.Mobile) || rd.Mobile.Contains(Mobile)
)
)
&& Mobile.Length > 9 && Name.Length > 1 && LastName.Length > 1 && Company.Length > 2
).ToArray();
如果没有 运行 代码,您似乎会进行某种一元选择 (rd)。我建议您开始重构代码并将每个条件分解为一部分...