2017-02-01 4 views
2

XMLファイルを読むには、次の2つの方法があります。パースのXElement XElement.Parse(File.ReadAllText(xmlfile)) 注意を使用して全体のXMLを読み込むことでIEnumerable <XElement>比較が同じでない

  1. :私はこのテクニックを使用しているべきではありません知っています。

XDocument XDocument.Load(xmlfile);の荷重を使用することにより

  • そしてIは、次のコードによってXElementオブジェクトのリストを作成しようとしました。私には、結果は同じように見えますが、2つのIEnumerableオブジェクトを比較しようとすると、同じではありません。

    私は見落としています。以下はコードスニペットです

    b私は両方のリストにデータを見ていますが、結果は偽になります。彼らは同じように見えます。

  • +4

    「等しい」は参照比較を行います。実際に両方のリストの内容を比較するものが必要です。 – juharr

    +0

    @juharr - これらすべてのコメントの回答は、私が質問を考えさせるように仕掛けているのには答えられていませんか? – hoodaticus

    +1

    @hoodaticusしかし、それは答えられませんでした。比較を実行する "何か"は何ですか?コメントは手がかりを与えますが、答えは提供しません。 – Evk

    答えて

    1

    基本的には、両方のリストの各要素を調べ、XNode.DeepEqualsメソッドを使用して値を比較する必要があります。

    if (xElementCollection.Count != xDocumentCollection.Count) 
    { 
        bCompare = false; 
    } 
    else 
    { 
        bCompare = true; 
        for (int x = 0, y = 0; 
        x < xElementCollection.Count && y < xDocumentCollection.Count; x++, y++) 
        { 
        if (!XNode.DeepEquals(xElementCollection[x], xDocumentCollection[y])) 
         bCompare = false; 
        } 
    } 
    
    +1

    ありがとう@hoodaticus –

    +0

    @Vivek_Shuklaそれは喜びでした – hoodaticus

    関連する問題