[英]Convert code snippet from VB.NET to C#
我嘗試了許多免費的代碼轉換器來轉換下面的代碼,但是沒有成功。
Dim resultList = ((From e In p_Xml.Elements()
Where UCase(e.Name.LocalName) = searchName).Union(
From a In p_Xml.Attributes()
Where UCase(a.Name.LocalName) = searchName
Select <<%= propertyName %>><%= a.Value %></>)).ToList()
我想我到了
var resultList = (from e in p_xml.Elements()
where e.Name.LocalName == searchName
select propertyName).
Union(from a in p_xml.Attributes()
where a.Name.LocalName == searchName
select a.Value).ToList();
您的轉換忽略了UCase
,在C#中等效為ToUpperCase
。
但是,這不是執行不區分大小寫的字符串比較的推薦方法。
e.Name.LocalName == searchName
應該替換為:
String.Compare(e.Name.LocalName, searchNamename, StringComparison.InvariantCultureIgnoreCase) == 0
另外,什么是propertyName
? 無論是什么,其值顯然都不取決於e
。 您在第一個查詢中為每個e
選擇一個相同的東西,這沒有任何意義。 我猜你的意思是select e
。
然后,您可能想要的是以下內容:
var resultList = (from e in p_xml.Elements()
where String.Compare(e.Name.LocalName, searchName, StringComparison.InvariantCultureIgnoreCase) == 0
select e).
Union(from a in p_xml.Attributes()
where String.Compare(a.Name.LocalName, searchName, StringComparison.InvariantCultureIgnoreCase) == 0
select a.Value).ToList();
我只是不確定如何在C#中表示Select <<%= propertyName %>><%= a.Value %></>
,因為我不知道VB。
我一直使用的優秀在線代碼轉換器是http://www.developerfusion.com/tools/convert/vb-to-csharp/
我在演講中聽到了來自Microsoft Roslyn項目的消息。 也許可以幫到您。
Microsoft希望將Roslyn集成到將來的Visual Studio版本中。 然后可以將代碼從VB復制到剪貼板,並將其粘貼為C#代碼 。 去年也有關於這一主題的演講,也許是相同的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.