如何传递匿名类型作为参数?

如何将匿名类型作为参数传递给其他函数?考虑以下示例:

var query = from employee in employees select new { Name = employee.Name, Id = employee.Id };

LogEmployees(query);

query这里的变量没有强类型。我应该如何定义LogEmployees要接受的功能?

public void LogEmployees (? list)

{

foreach (? item in list)

{

}

}

换句话说,我应该使用什么代替?标记。

回答:

我认为您应该为此匿名类型创建一个类。我认为这将是最明智的选择。但是,如果您真的不想要,可以使用动态:

public void LogEmployees (IEnumerable<dynamic> list)

{

foreach (dynamic item in list)

{

string name = item.Name;

int id = item.Id;

}

}

请注意,此类型 不是 强类型,因此,例如,如果Name更改为EmployeeName,则直到运行时您才知道有问题。

以上是 如何传递匿名类型作为参数? 的全部内容, 来源链接: utcz.com/qa/429398.html

回到顶部