VB.NET和LINQ。我在这里错过了什么?
我试图让this sitemap clas工作。VB.NET和LINQ。我在这里错过了什么?
它似乎使用LINQ,我从来没有用过,但编程的一半乐趣是学习新东西!
我的问题是,我得到LINQ代码的编译错误。 VS只是不认识它。我有一个参考system.data.linq,我有一个进口system.data.linq,但仍然在代码读取,“Dim folders = From o在Directory.GetDirectories ...”,它告诉我“预计结束声明。”
我在配线这件东西时缺少什么,以便我可以使用LINQ?我的框架是2.0.5。 LINQ在2中对我来说简直不可用?如果是这样,为什么我的GAC中的system.data.linq?
下面的代码:
Private Sub AddFolders(ByVal parentNode As SiteMapNode)
Dim folders = From o In Directory.GetDirectories(HttpContext.Current.Server.MapPath(parentNode.Key)) _
Let dir = New DirectoryInfo(o) _
Where Not Regex.Match(dir.Name, ExcludedFolders).Success _
Select New()
For Each item In folders
Dim folderUrl As String = parentNode.Key + item.DirectoryName
Dim folderNode As New SiteMapNode(Me, folderUrl, Nothing, item.DirectoryName, item.DirectoryName)
AddNode(folderNode, parentNode)
AddFiles(folderNode)
Next
End Sub
感谢你们。堆栈溢出岩石。
Dim folders = From o In Directory.GetDirectories(HttpContext.Current.Server.MapPath(parentNode.Key)) _
Let dir = New DirectoryInfo(o) _
Where Not Regex.Match(dir.Name, ExcludedFolders).Success _
Select dir
编辑:其实你不能在.NET 2.0中使用LINQ的,至少在没有一些调整。不过,使用LINQ和与.NET 3.5编译器编译后的代码可以在运行。 NET 2.0运行时,使用LinqBridge
非常感谢。 LinqBridge看起来很漂亮。 – aape 2009-08-26 13:00:02
您必须定位3.5(Visual Studio 2008)以使用linq。
如果您的目标是.NET Framework 2,那么您可以通过一点额外的努力来获得LINQ的工作。
最简单的方法把事情快速移动是下载LINQBridge它提供了一个LINQ实施框架2.
至于为什么你在GAC看到System.Data.Linq程序...听起来像你.NET 3.5与.NET 2.0并排安装
“...听起来像你有NET 3.5与.NET 2.0并排安装” 谢谢。那会让我一整天都在想这些。 – aape 2009-08-26 13:01:15
Arg。我们仍然在2005年。我每周都会对它们进行窃听,我们需要升级并被忽略。至少,这对我来说是更多的弹药。 谢谢你们! – aape 2009-08-26 12:53:48