Kri*_*s-I 7 c# linq collections lambda
我有一个"Employee"类,它有一个IList <> of"TypeOfWork".
public class Employee
{
public virtual IList<TypeOfWork> TypeOfWorks { get; set; }
}
public class TypeOfWork
{
public virtual Customer Customer { get; set; }
public virtual Guid Id { get; set; }
public virtual string Name{ get; set; }
public virtual bool IsActive{ get; set; }
}
Run Code Online (Sandbox Code Playgroud)
在保存之前,我很想知道"typeofwid"(一个Guid)是否已经存在于"TypeOfWorks"集合中.
我试过这个:
var res = from p in employee.TypeOfWorks
where p.Id == new Guid("11111111-1111-1111-1111-111111111111")
select p ;
Run Code Online (Sandbox Code Playgroud)
并试过这个:
bool res = employee.TypeOfWorks.Where(f => f.Id == new Guid("11111111-1111-1111-1111-111111111111")).Count() != 0;
Run Code Online (Sandbox Code Playgroud)
在Visual Studio的"立即窗口"中但我收到错误:表达式在两种情况下都不能包含查询表达式
你有好主意吗 ?
谢谢,
Jos*_*dan 19
正是错误所说的.您不能在立即窗口中使用LINQ查询,因为它们需要编译lambda函数.尝试实际代码中的第一行,可以编译它.:)
此外,要在一行中完成所有操作,您可以使用LINQ"Any"运算符,如下所示:
if( ! employee.TypeOfWorks.Any(tow => tow.Id == theNewGUID) )
//save logic for TypeOfWork containing theNewGUID
Run Code Online (Sandbox Code Playgroud)