2011-11-22 95 views
1

This link提供示例代码来推断VB.NET中XML文件的模式。一个特别的线在我翻译到C#,即失败,将vb.net翻译为C#:一行代码

Dim schema As XmlSchema = schemaSet.Schemas()(0) 

我的翻译是

XmlSchema schema = schemaSet.Schemas()[0]; 

我看不出有什么不对我的翻译?

+7

你得到的编译器错误是什么?什么类型是'schemaSet'? – Jacob

+0

'schemaSet'的类型是什么? – jzila

+0

类型为System.Xml.Schema.XmlSchemaSet,错误为'无法将索引用[]应用于System.Collections.ICollection类型的表达式' – AAsk

回答

10

XmlSchemaSet.Schemas()返回您无法通过索引访问的ICollection。如果您使用的使用。NET 3.5,你可以使用LINQ做:

schemaSet.Schemas().Cast<XmlSchema>().First(); 

否则,您必须使用foreach循环,在第一次迭代后停止。

+0

+1是因为第一个指出尝试使用'[0]'不适用于'ICollection'。 –

+0

+1提供了一个实际上可以解决问题的答案。 –

+0

ChrisWue:太棒了!有用。非常感谢你。我很好奇 - 什么是非Linq解决方案? – AAsk