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,并相应地更改了方法的数据类型,但没有成功。
请给我指路。
提前感谢!
您正在创建一个具有三个属性(AmountPaid
、ApplicationDate
和Type
(的匿名类型实例列表。您的方法需要List<Collection>
。假设Collection
是一个具有相同属性的类型,您可能只想要:
.Select(dx => new Collection
{
AmountPaid = dx.AmountPaid,
ApplicationDate dx.ApplicationDate,
Type = dx.Type
})
并保持代码的其余部分不变。那么orcontents
的类型将是List<Collection>
,并且对方法的调用应该很好。