在LINQ C#中使用OR条件

DoI*_*oIt 3 c# linq list entitycollection

我在LINQ c#中编写以下SQL查询

  SELECT max(creation_date) from TRS where approval_status='APPROVED' and transaction_type in ('Sale','PRE') 
Run Code Online (Sandbox Code Playgroud)

我尝试在列表上构建以下查询,如下所示

var session = txns.Where(a => a.transaction_type.Equals("SALE"))
                     .Where(a => a.transaction_type.Equals("PRE"))
                     .Where(a => a.approval_status.Equals("APPROVED"))
                     .OrderByDescending(a => a.creation_date).Select(a => a.creation_date).FirstOrDefault();
Run Code Online (Sandbox Code Playgroud)

上面的查询没有用,因为我不确定如何在LINQ中使用Max和OR条件c#

我可以知道更好的解决方案吗?

Rob*_*Kee 9

var session = txns
  .Where(a => a.transaction_type.Equals("SALE") || a.transaction_type.Equals("PRE"))
  .Where(a => a.approval_status.Equals("APPROVED"))
  .Select(a=>a.creation_date).Max();
Run Code Online (Sandbox Code Playgroud)

要么

var txtypes=new[]{"SALE","PRE"};
var session = txns
  .Where(a => txtypes.Contains(a.transaction_type))
  .Where(a => a.approval_status.Equals("APPROVED"))
  .Select(a=>a.creation_date).Max();
Run Code Online (Sandbox Code Playgroud)

要么

var session = txns
  .Where(a => a.transaction_type.Equals("SALE") || a.transaction_type.Equals("PRE"))
  .Where(a => a.approval_status.Equals("APPROVED"))
  .Max(a=>a.creation_date);
Run Code Online (Sandbox Code Playgroud)