C# List<`a>匿名类传递其他方法

C# List<`a>这种匿名类怎么传递给其他方法
我通过ORM从数据库取出数据:

  public static object GetDtl()
{
   using (var db = new EfDb())
  {
    var query = from scd in db.INV_STOCK_CHECK_DTL
                      from sm in db.SFC_MITEM.LeftJoin(e => e.ORG_ID == OrgId && e.ENTERPRISE_ID == EnterpriseId && e.ID == scd.MITEM_ID)
                     where scd.ORG_ID == OrgId && scd.ENTERPRISE_ID == EnterpriseId && scd.BILL_NO == billno
                            select new
                            {
                                sm.MITEM_CODE,
                                sm.MITEM_DESC,
                                sm.UOM,
                                scd.WAREHOUSE_CODE,
                                scd.LOC_CODE,
                                scd.DISTRICT_CODE,
                                scd.CHECK_QTY,
                                scd.ONHAND_QTY,                                      
                                scd.DIFF_REASON,
                                scd.ID
                            };
        var data = query.Skip(start).Take(length).ToList();
        GetDefData(data );
    }
}

以上代码可以看到查询出来的结果data是List<`a>这种匿名类;
如图:

img

我想将这个data传递给另外一个方法GetDefData(data )处理;但是这个方法不知道用什么类来接data

 public static object GetDefData(List<`a>data )
{

}

望采纳,有问题再交流

可以在匿名类前面加上类型声明,然后使用 var 关键字声明一个新的变量来存储匿名类的实例,例如:

var data = query.Skip(start).Take(length).ToList();
List<dynamic> defData = data;
GetDefData(defData);

上述代码使用了动态类型 dynamic,它可以存储任意类型的值,但是在运行时会有一些性能损失。如果你确定这个匿名类中包含了哪些字段,你可以使用明确的类型来声明新的变量,例如:

var data = query.Skip(start).Take(length).ToList();
List<SomeType> defData = data;
GetDefData(defData);

上述代码SomeType 应该具有与匿名类相同的字段。

如果你的匿名类包含的字段很多,你也可以使用一个类或者结构体来声明新的变量。例如:

var data = query.Skip(start).Take(length).ToList();
List<SomeClassOrStruct> defData = data;
GetDefData(defData);