C# Linq开始括号和结束括号不匹配
我有以下代码:C# Linq开始括号和结束括号不匹配,c#,entity-framework,visual-studio,linq,linq-to-entities,C#,Entity Framework,Visual Studio,Linq,Linq To Entities,我有以下代码: 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.Last
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)
之间添加缺少的|
并修复缩进,这样更容易看出问题所在。当我缩进它时,丢失的操作符像一个酸痛的拇指一样突出,并且很容易看到parens是如何工作的
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();
}
使用(Entities db=new Entities())
{
refere=db.Refferals.Where(r=>
r、 参考详细信息。任何(rd=>
(
Name.Contains(rd.Name)
||rd.Name.Contains(名称)
||LastName.Contains(rd.LastName)
||rd.LastName.Contains(LastName)
||公司。包含(r公司)
||r.公司包含(公司)
|| /* 9
&&名称.长度>1
&&LastName.Length>1
&&公司。长度>2
).ToArray();
}
尝试在r.Company.Contains(Company)
和Mobile.Contains(rd.Mobile)
之间添加缺少的|
修正缩进,这样就更容易看出哪里出了问题。当我缩进时,缺少的操作符像一个酸痛的拇指一样突出,很容易看出paren是如何工作的
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();
}
使用(Entities db=new Entities())
{
refere=db.Refferals.Where(r=>
r、 参考详细信息。任何(rd=>
(
Name.Contains(rd.Name)
||rd.Name.Contains(名称)
||LastName.Contains(rd.LastName)
||rd.LastName.Contains(LastName)
||公司。包含(r公司)
||r.公司包含(公司)
|| /* 9
&&名称.长度>1
&&LastName.Length>1
&&公司。长度>2
).ToArray();
}
在Mobile.Contains(rd.Mobile)之前缺少一个**| |**
Mobile.Contains(rd.Mobile)前面缺少一个**| |**
如果不运行代码,您似乎会执行某种一元选择(rd)。我建议您开始重构代码,并将每个条件分解为一部分…如果不运行代码,您似乎会执行某种一元选择(rd)。我建议您开始重构代码,并将每个条件分解为一个部分…,看起来除了匹配之外什么都不匹配!您在
r.Company.Contains(Company)
和Mobile.Contains(rd.Mobile)之间没有操作员
。但更一般地说,这是完全不可读的-很难看出哪里出了问题。问题出在哪里?你说开始括号和结束括号不匹配?在.ToArray()之前的结束括号是什么
应该匹配吗?@CharlesMager多谢了。我和我兄弟看了半个小时都看不见。它解决了问题,看起来除了匹配之外什么都不匹配!你在r.Company.Contains(Company)
和Mobile.Contains(rd.Mobile)之间没有接线员
。但更一般地说,这是完全不可读的-很难看出哪里出了问题。问题出在哪里?你说开始括号和结束括号不匹配?在.ToArray()之前的结束括号是什么
应该匹配吗?@CharlesMager多谢了。我和我兄弟看了半个小时都没看到。它解决了问题