我有一个旧的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>
我不知道VB.NET使用XML模式的C#等效方法。有没有一种方法可以导入模式并使用相同的LINQ语句?
编辑:
让我通过循环的部分是Imports <xmlns:items="urn:list_items">
到using urn:list_items
的转换(通过SharpDevelop)。编译器抱怨这种语法。
我很好奇是否有一个C#等效的指令来导入XML模式并将其用作LINQ查询的一部分,但考虑到C#不像VB.NET一样支持XML文字是的,这是不相关的。
答案 0 :(得分: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
};