C#如何传递LinqToList()

本文关键字:LinqToList 何传递 | 更新日期: 2023-09-27 18:00:50

我是LINQ的新手,在将查询结果传递到方法时遇到问题

这是代码:

using (var ctx = new AH_ODS_DBEntities1())
{
    var orlist = ctx.Collections.Where(x => x.AQ_PostStatus == 0).GroupBy(x => x.SourceOR).Select(x => new { Key = x.Key }).ToList();
    foreach(var ordocnumber in orlist) // navigate the list of OR's
    {
        Console.WriteLine(ordocnumber.Key);//+"'n"+fatnotes+"'n");                    
        var orcontents = ctx.Collections.Where(dx => dx.SourceOR == ordocnumber.Key).Select(dx =>
        new
        {
            dx.AmountPaid,
            dx.ApplicationDate,
            dx.Type 
        }).ToList();
        AQEngine2(context, orcontents);   
    }
}

这是我试图调用的方法。错误显示"…方法匹配…有一些无效参数">

public static void AQEngine2(KDICOLLECTIONS.Screen context, List<Collection> orcontents)
{
 // some code
}

我不理解这个错误,也不知道如何正确地传递查询结果。我试着去掉ToList((,告诉IEnumerable而不是var和IQueryable,并相应地更改了方法的数据类型,但没有成功。

请给我指路。

提前感谢!

C#如何传递LinqToList()

您正在创建一个具有三个属性(AmountPaidApplicationDateType(的匿名类型实例列表。您的方法需要List<Collection>。假设Collection是一个具有相同属性的类型,您可能只想要:

.Select(dx => new Collection
{
    AmountPaid = dx.AmountPaid,
    ApplicationDate dx.ApplicationDate,
    Type = dx.Type 
})

并保持代码的其余部分不变。那么orcontents的类型将是List<Collection>,并且对方法的调用应该很好。