【发布时间】:2017-12-22 19:49:35
【问题描述】:
我有以下代码:
var results = from table1 in ds.Tables[0].AsEnumerable()
join table2 in ds.Tables[1].AsEnumerable()
on table1["VendorNumber"] equals table2["VendorNumber"]
join table3 in ds.Tables[2].AsEnumerable()
on table1["VendorNumber"] equals table3["VendorNumber"]
select new
{ (select clause removed to save space here };
我试图将它重构为一个方法,但是当我这样做时,它给了我错误。重构方法的第一行是这样的:
private static IEnumerable<> Enumerable(DataSet ds)
我收到的错误是“意外使用未绑定的通用名称。”
关于我需要做什么才能正确将此代码重构为方法的任何建议?谢谢!
【问题讨论】:
-
你必须给它一个具体的类型(你将从 LINQ 返回)。比如
IEnumerable<int>、IEnumerable<double>等。你现在有的是open type。 -
首先,您缺少
IEnumerable的类型。 -
您需要返回一个特定类型的
IEnumerable,并且您必须指定它,但是由于当前基于您的选择语句,您正在返回一个匿名类型,您可以创建一个 DTO 类并返回它像这样stackoverflow.com/a/46905481/2946329