【发布时间】:2009-08-26 14:50:32
【问题描述】:
我一直在读一本用 C# 编写的书。我是一名 VB.NET 开发人员(并且是一名非常初级的开发人员),我在以下代码中遇到了很多麻烦,其中包含很多我以前从未见过的东西。我确实有 Lambda 表达式的基本知识。
public List<T> SortByPropertyName(string propertyName, bool ascending)
{
var param = Expression.Parameter(typeof(T), "N");
var sortExpression = Expression.Lambda<Func<T, object>>
(Expression.Convert(Expression.Property(param, propertyName),
typeof(object)), param);
if (ascending)
{
return this.AsQueryable<T>().OrderBy<T, object>(sortExpression).ToList<T>();
}
else
{
return this.AsQueryable<T>().OrderByDescending<T, object>(sortExpression).ToList<T>
}
}
谁能告诉我这段代码在做什么以及正在使用什么概念? 我也在尝试将此代码转换为 VB.NET,但运气不佳,因此也将不胜感激。
【问题讨论】:
-
是我,还是密码坏了? T 在哪里定义?
-
@Mike:我假设这是一个泛型类,可能是继承自 List
的东西。
标签: vb.net lambda c#-to-vb.net