2009-08-26 8 views
1

私はthis sitemap clasの作業をしようとしています。VB.NETとLINQ。私はここで何が欠けていますか?

私は一度も使ったことのないLINQを使っているようですが、プログラミングの半分は新しいものを学ぶことです!

私の問題は、私はLINQコードがどこにコンパイルエラーを取得しているということです。 VSはそれを認識しません。私はsystem.data.linqへの参照を持っていますが、私はsystem.data.linqのインポートを持っていますが、コードが読み取られる場所はまだ"Dim folders = From o From 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 

感謝のy'all:

は、ここでは、コードです。スタックオーバーフローの岩。

+0

Arg。私たちはまだ2005年です。毎週私たちはアップグレードする必要があり、無視されます。これは少なくとも私のためにまだ弾薬です。 ありがとう! – aape

答えて

3
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 

EDIT:実際には、少なくともではないいくつかの調整なしに、.NET 2.0でのLINQを使用することはできません...しかし、コードのLINQを使用し、.NET 3.5コンパイラでコンパイルが上で実行することができます。 NET 2.0ランタイムを使用するLinqBridge

+0

ありがとうございました。 LinqBridgeはかなりかわいく見えます。 – aape

2

linqを使用するには3.5(Visual Studio 2008)をターゲットにする必要があります。

2

this linkに従って、.NET 2.0でLINQを使用できます(私は個人的にテストしませんでした)。 Visual Studio 2008が必要ですが...

すぐにリリースされる予定の.NET 4.0を待つ必要がない限り、できるだけ早く.NET 3.5にアップグレードすることをお勧めします:-)

+0

情報とリンクをありがとうございます。 – aape

2

.NET Framework 2をターゲットにしている場合は、LINQが少しでも手間をかけて作業できるようになります。

物事はすぐに移動を取得する最も簡単な方法は、あなたがGACにSystem.Data.Linqを見ている理由についてはフレームワーク2.

のためのLINQの実装を提供LINQBridgeをダウンロードすることです...あなたのように聞こえますNET 2.0と並行してインストールされた.NET 3.5を持っている

+0

".NET 3.5と.NET 2.0が並んでインストールされているようですね。" ありがとう。それは、私が一日中私に迷惑をかけていただろう。 – aape

関連する問題