0

次の部分を変換するために、自由に利用できる多くのコードコンバーターを試しましたが、成功しませんでした。

 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();
4

3 に答える 3

1

あなたの変換は を除外しUCaseました.C#での同等のものは ですToUpperCase.

ただし、これは大文字と小文字を区別しない文字列比較を実行するための推奨される方法ではありません。

e.Name.LocalName == searchName

次のようなものに置き換える必要があります。

String.Compare(e.Name.LocalName, searchNamename, StringComparison.InvariantCultureIgnoreCase) == 0

また、何propertyNameですか?それが何であれ、その値は明らかに依存していませんee最初のクエリですべてに対して同じものを選択していますが、これは意味がありません。私はあなたが意味したと思います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();

私はSelect <<%= propertyName %>><%= a.Value %></>VBを知らないので、C#で表現する方法がわかりません。

于 2012-02-24T10:58:16.237 に答える
0

私がいつも使用している優れたオンライン コード コンバーターは、http://www.developerfusion.com/tools/convert/vb-to-csharp/です。

于 2012-02-24T10:53:52.507 に答える
0

Microsoft のRoslynプロジェクトからプレゼンテーションで聞きました。多分それはあなたを助けることができます。

Microsoftは、将来の Visual Studio バージョンにRoslynを統合したいと考えています。次に、コードを VB からクリップボードにコピーして、C# コードとして貼り付けるだけで済みます。昨年もそれについてのプレゼンテーションがありましたが、おそらく同じものでした。

于 2012-02-24T11:15:05.737 に答える