【发布时间】:2009-12-12 02:59:53
【问题描述】:
(对不起,我试着格式化它,但我无法让代码格式化正常工作)
我明白了:
Incorrect number of arguments supplied for call to method
'System.Linq.IQueryable`1[System.String]
Take[String](System.Linq.IQueryable`1[System.String], Int32)'
当我执行时:
string[] companies = { "Consolidated Messenger", "Alpine Ski House", "Southridge Video", "City Power & Light",
"Coho Winery", "Wide World Importers", "Graphic Design Institute", "Adventure Works",
"Humongous Insurance", "Woodgrove Bank", "Margie's Travel", "Northwind Traders",
"Blue Yonder Airlines", "Trey Research", "The Phone Company",
"Wingtip Toys", "Lucerne Publishing", "Fourth Coffee" };
// The IQueryable data to query.
IQueryable<String> queryableData = companies.AsQueryable<string>();
// EXCEPTION HERE
Expression e2 = Expression.Call(
typeof(Queryable).GetMethods().Where(m => m.Name == "Take")
.Single().MakeGenericMethod(new Type[] { typeof(string) }),
new Expression[] { Expression.Constant(4) });
IQueryable<string> res = queryableData.Provider.CreateQuery<string>(e2);
foreach (string s in res)
{
Console.WriteLine(s);
}
我认为我需要传入可查询对象本身,但我不知道该怎么做(如果它甚至需要的话)。
感谢任何帮助。
谢谢。
【问题讨论】:
-
感谢格式化帮助。
标签: linq expression-trees