2017-09-09 41 views
-2

私は同じデータを持つ約20レコードがある計算平均

<user> 
    <name>Fred</name> 

    <test1>23</test1> 
    <test2>34</test2> 
    <test3>43</test3> 
</user> 

を中心に構成xmlファイルを持っています。 私はvb.net 2015コミュニティ版を使用してすべてのユーザーのテストを平均化します。たとえば、ユーザーごとに1〜3のテストを追加し、ユーザー数で割ってください。

クラス平均のラベルに書き込むボタンイベントのコードを教えてもらえますか?

+1

まあ、https://docs.microsoft.com/en-us/dotnet/visual-basic/programming-guide/concepts/linq/getting-を参照してくださいstarted-with-linqおよびhttps://docs.microsoft.com/en-us/dotnet/visual-basic/programming-guide/concepts/linq/linq-to-xml –

+0

https://docs.microsoft.jpを参照してください。 com/en-us/dotnet/visual-basic/programming-guide/concepts/linq/scope-of-default-namespacesを参照してください。 –

答えて

0

この1つはあなたのために働く必要があります。

'Dim xDoc = XDocument.Load("Your Document path")' 

    Dim xDoc = 
     <Document> 
      <user> 
       <name>Fred</name> 
       <test1>23</test1> 
       <test2>34</test2> 
       <test3>43</test3> 
      </user> 
      <user> 
       <name>Greg</name> 
       <test1>50</test1> 
       <test2>50</test2> 
       <test3>50</test3> 
      </user> 
     </Document> 


    Dim result = (From node In xDoc.Descendants("user") 
        Select (Convert.ToInt32(node.Descendants("test1").Value()) + 
         Convert.ToInt32(node.Descendants("test2").Value()) + 
         Convert.ToInt32(node.Descendants("test3").Value()))).Average() 
+0

これはなぜうまくいくと思いますか? –

+0

((23 + 34 + 43)+(50 + 50 + 50))/ 2 = 125です。 –

+0

hi - 各ユーザーの全体的な平均を計算し、その平均値の平均を見つけるとxmlファイルから直接読み取る必要があります – Gdude