【发布时间】:2016-07-27 09:15:27
【问题描述】:
我应该如何将下面的 LINQ 代码转换为 .Net 2.0 代码?
由于公司政策的一些限制,我无法将其升级到 .Net 3.5。
GetErrorLog 将被ObjectDataSource 使用。
为了使下面的代码能够工作,我使用来自http://weblogs.asp.net/scottgu/dynamic-linq-part-1-using-the-linq-dynamic-query-library 的System.Linq.Dynamic
public class errorLog
{
public string fileName { get; set; }
public string filePath { get; set; }
}
public static IQueryable<errorLog> GetErrorLog(int startRowIndex, int maximumRows, string sortExpression, string logPath)
{
if (string.IsNullOrEmpty(sortExpression))
{
sortExpression = "fileName";
}
string[] filePaths = Directory.GetFiles(logPath);
List<errorLog> files = new List<errorLog>();
foreach (string filePath in filePaths)
{
files.Add(new errorLog { fileName = Path.GetFileName(filePath), filePath = filePath });
}
return files.AsQueryable().OrderBy(sortExpression).Skip(startRowIndex).Take(maximumRows);
}
【问题讨论】:
-
由于公司政策,我无法将其升级到 .Net 3.5。 换一家新公司。
-
你试过什么? Linq 让生活变得轻松,但它不是魔法 - 排序 - 你有很多例子可以做到这一点。跳过 - 只需从索引 x 开始。采取 - ...只需采取直到索引 y
-
显示
sortExpression的例子,你能用GetErrorLogSortByName和GetErrorLogSortByPath替换一个方法吗? -
随着 Microsoft 对原始 .NET Framework 2.0 的生命支持终止,所有受支持的设置现在都应该在 .NET Framework 3.5 SP1 及更高版本上。正如另一条评论所指出的,不要在死板的平台上浪费时间。