2

C# に変換する古い VB.NET Web アプリケーション プロジェクトがあります。SharpDevelop を使用してアプリの大部分を変換しましたが、特殊なケースのコードを変換する際に問題が発生しました。

' Namespace
Imports <xmlns:items="urn:list_items">

' Code:
Dim group = From items In ListItems...<items:item> _
                 Where items.<item.name> = "Something"
                 Select names = items.<item.name>

XML スキーマを使用する VB.NET の方法に相当する C# については知りません。スキーマをインポートして同じ LINQ ステートメントを使用する方法はありますか?

編集:

ループに陥った部分は、への変換(SharpDevelopによる)でしImports <xmlns:items="urn:list_items">using urn:list_items。コンパイラは、この構文について不平を言います。

XML スキーマをインポートし、それを LINQ クエリの一部として使用するディレクティブに相当する C# があるかどうかに興味がありましたが、C# は VB.NET と同じように XML リテラルをサポートしていないため、そうではありません。関連する。

4

1 に答える 1

5

同等のものはありません。C# は XML リテラルをサポートしていません。


C# は LINQ to XML をサポートしています。ただし、投稿したコードは、XML と XML の処理の両方を実際の XML に近い形式で指定できる特別な VB.NET 構文です。C# にはこれに相当するものはありません。


実際に同等のものを探しているのではなく、翻訳のみを探している場合は、おそらく次のようになります。

XNamespace itemsNs = "urn:list_items";
var group = from items in ListItems.Descendants(itemsNs + "item")
            where items.Element("item").Element("name").Value == "Something"
            select new
                {
                    names = items.Element("item").Element("name").Value
                };
于 2013-05-06T19:11:38.747 に答える