2

我有一个旧的 VB.NET Web 应用程序项目,我正在转换为 C#。我已经使用 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>

我不知道 C# 等效于 VB.NET 的使用 XML 模式的方法。有没有办法导入架构并使用相同的 LINQ 语句?

编辑:

Imports <xmlns:items="urn:list_items">让我陷入循环的部分是to的转换(通过 SharpDevelop)using urn:list_items。编译器抱怨这种语法。

我只是好奇是否有一个 C# 等效的指令来导入 XML 模式并将其用作 LINQ 查询的一部分,但鉴于 C# 不像 VB.NET 那样支持 XML 文字,它不是相关的。

4

1 回答 1

5

没有等价物。C# 不支持 XML 文字。


C# 确实支持 LINQ to XML。但是,您发布的代码是特殊的 VB.NET 语法,它允许以更接近实际 XML 的形式指定 XML 和 XML 的处理。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 回答