2011-11-22 166 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