VB.NET 和 LINQ。我在这里想念啥?
Posted
技术标签:
【中文标题】VB.NET 和 LINQ。我在这里想念啥?【英文标题】:VB.NET and LINQ. What am I missing here?VB.NET 和 LINQ。我在这里想念什么? 【发布时间】:2010-11-22 23:50:07 【问题描述】:我正在努力让this sitemap class 工作。
它似乎使用了我从未使用过的 LINQ,但编程的一半乐趣在于学习新东西!
我的问题是在 LINQ 代码所在的位置出现编译错误。 VS只是不认识它。我有对 system.data.linq 的引用,我有一个导入 system.data.linq,但仍然是代码读取的位置,“Dim 文件夹 = From o In Directory.GetDirectories...”,它告诉我“预期语句结束。”
在连接这个东西以便我可以使用 LINQ 时我缺少什么?我的框架是 2.0.5。我在 2 中根本无法使用 LINQ 吗?如果是这样,为什么我的 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
谢谢大家。堆栈溢出摇滚。
【问题讨论】:
精氨酸。我们仍然在 2005 年。我每周都会对它们进行窃听,我们需要升级,并被忽略。至少,这对我来说是更多的弹药。谢谢你们! 【参考方案1】: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 看起来很漂亮。【参考方案2】:您必须以 3.5 (Visual Studio 2008) 为目标才能使用 linq。
【讨论】:
【参考方案3】:根据this link,您可以将 LINQ 与 .NET 2.0 一起使用(我没有亲自测试过)。不过你需要 Visual Studio 2008...
如果可能的话,我建议您升级到 .NET 3.5,除非您想等待即将发布的 .NET 4.0 :-)
【讨论】:
【参考方案4】:如果您以 .NET Framework 2 为目标,您可以让 LINQ 正常工作...只需付出一点额外的努力。
让事情快速发展的最简单方法是下载LINQBridge,它提供了Framework 2 的LINQ 实现。
至于您在 GAC 中看到 System.Data.Linq 的原因...听起来您同时安装了 .NET 3.5 和 .NET 2.0
【讨论】:
"...听起来您已经同时安装了 .NET 3.5 和 .NET 2.0" 谢谢。那会让我整天想着这个问题。以上是关于VB.NET 和 LINQ。我在这里想念啥?的主要内容,如果未能解决你的问题,请参考以下文章
添加 UICollectionView 作为 UICollectionReusableView reloadData 的子视图不起作用,我想念啥?