Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/295.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# sql查询到linq查询的In子句_C#_Linq - Fatal编程技术网

C# sql查询到linq查询的In子句

C# sql查询到linq查询的In子句,c#,linq,C#,Linq,如果有人能帮助我用Linq编写以下查询,我将不胜感激 select totaldue from Receivables where studentid = 8128 and reportedon = (select max(reportedon) from Receivables where studentid = 8128 这与您的要求类似 var receivables = new List<Rece

如果有人能帮助我用Linq编写以下查询,我将不胜感激

select totaldue
from Receivables
where studentid = 8128
  and reportedon = (select max(reportedon)
                    from Receivables
                    where studentid = 8128

这与您的要求类似

var receivables = new List<Receivable>()
{
    new Receivable { ReportedOn = DateTime.Now.AddDays(-5), StudentId = 8128, TotalDue = 5.43 },
    new Receivable { ReportedOn = DateTime.Now.AddDays(-4), StudentId = 8128, TotalDue = 4.32 },
    new Receivable { ReportedOn = DateTime.Now.AddDays(-3), StudentId = 8128, TotalDue = 3.21 },
    new Receivable { ReportedOn = DateTime.Now.AddDays(-2), StudentId = 8128, TotalDue = 2.10 },
    new Receivable { ReportedOn = DateTime.Now.AddDays(-1), StudentId = 2818, TotalDue = 1.09 },
    new Receivable { ReportedOn = DateTime.Now, StudentId = 2818, TotalDue = .98 }
};



var totDue = receivables
    .Where(receivable => receivable.StudentId == 8128)
    .OrderByDescending(receivable => receivable.ReportedOn)
    .Select(receivable => receivable.TotalDue);

Console.WriteLine("{0}", totDue.First());
选中此项:

var max_rep = (from d in Receivables select d.reportedon).Max();
var qry_res =  from q in Receivables where q.studentid == 8128 && q.reportedon == max_rep 

可能会有帮助

你也可以像这样实现你想要的

var res = receivables.Where(s => s.StudentId == 8128)
                     .OrderBy(s => s.TotalDue).FirstOrDefault();

我在你的查询中看不到任何IN子句。我看不到你尝试过的任何LINQ代码。
var res = receivables.OrderBy(s=> s.TotalDue)
                     .FirstOrDefault(s => s.StudentId == 8128);