首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何找到从XML文档中抽取的一组5分的平均值?

如何找到从XML文档中抽取的一组5分的平均值?
EN

Stack Overflow用户
提问于 2020-03-09 23:58:54
回答 3查看 157关注 0票数 0

现在,它只是简单地显示每个分数的延迟。我想知道我如何才能准确地取得相同的成绩,并找到它们的平均值,并显示在页面底部。我不知道如何进一步阐明这个问题,但我肯定会回答与此有关的任何问题。

代码语言:javascript
复制
using System;
using System.Xml;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;

namespace XML_Project1
{
    class Program
    {
        static void Main(string[] args)
        {
            int totalC = 0;
            XmlDocument xmlDoc = new XmlDocument();
            string XMLpath = Directory.GetCurrentDirectory() + @"\grades.xml";
            xmlDoc.Load(XMLpath);
            XmlNodeList Clist = xmlDoc.GetElementsByTagName("grade");
            totalC = Clist.Count;
            for (int i = 0; i < Clist.Count; i++)
            {
                Console.WriteLine(Clist[i].InnerText.ToString());
                System.Threading.Thread.Sleep(1000);
            }
            Console.WriteLine(Environment.NewLine);
            Console.WriteLine(totalC.ToString() + " people in XML file.");
            Console.ReadLine();
        }
    }
}

这是我正在绘制信息的XML文件。

代码语言:javascript
复制
<?xml version="1.0"?>
<class>
    <student>
        <name>Sam</name>
        <grade>76</grade>
    </student>
    <student>
        <name>Joe</name>
        <grade>80</grade>
    </student>
    <student>
        <name>Linda</name>
        <grade>82</grade>
    </student>
    <student>
        <name>Eugene</name>
        <grade>90</grade>
    </student>
    <student>
        <name>Tina</name>
        <grade>92</grade>
    </student>
</class>
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2020-03-10 01:47:42

试试看:

代码语言:javascript
复制
string XMLpath = Directory.GetCurrentDirectory() + @"\grades.xml";
XDocument xmlDoc = XDocument.Load(XMLpath);

IEnumerable<XElement> gradeElements = xmlDoc.Root.Descendants("grade");

int totalC = gradeElements.Count();
double averageGrade = gradeElements.Select(x => (double)x).Average();

Console.WriteLine(Environment.NewLine);
Console.WriteLine($"{totalC} people in XML file.");
Console.WriteLine($"{averageGrade} average grade.");
Console.ReadLine();
票数 0
EN

Stack Overflow用户

发布于 2020-03-10 00:55:14

使用xml并将结果放入字典

代码语言:javascript
复制
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml;
using System.Xml.Linq;

namespace ConsoleApplication1
{
    class Program
    {
        const string FILENAME = @"c:\temp\test.xml";
        static void Main(string[] args)
        {
            XDocument doc = XDocument.Load(FILENAME);

            Dictionary<string, int> dict = doc.Descendants("student")
                .GroupBy(x => (string)x.Element("name"), y => (int)y.Element("grade"))
                .ToDictionary(x => x.Key, y => y.FirstOrDefault());

            decimal average = (decimal)dict.Average(x => x.Value);
        }
    }
}
票数 1
EN

Stack Overflow用户

发布于 2020-03-10 00:22:07

您可以首先将每个元素转换为Int,而不是将其存储为XmlNode的集合。例如,

代码语言:javascript
复制
var Clist = xmlDoc.GetElementsByTagName("grade")
                  .Cast<XmlNode>()
                  .Select(x=> Convert.ToInt32(x.InnerText))
                  .ToList();

现在,您可以计算条目的数量(Peopl)和平均为

代码语言:javascript
复制
totalC = Clist.Count;
var average = Clist.Average();

完整代码

代码语言:javascript
复制
XmlDocument xmlDoc = new XmlDocument();
string XMLpath = @"e:\data.xml";
xmlDoc.Load(XMLpath);
var Clist = xmlDoc.GetElementsByTagName("grade")
                  .Cast<XmlNode>()
                  .Select(x=> Convert.ToInt32(x.InnerText))
                  .ToList();

var totalC = Clist.Count;
var average = Clist.Average();
for (int i = 0; i < Clist.Count; i++)
{
    Console.WriteLine(Clist[i]);
    System.Threading.Thread.Sleep(1000);

}
Console.WriteLine(Environment.NewLine);
Console.WriteLine($"{totalC} people in XML file.");
Console.WriteLine($"Average {average}");

请包括System.Linq命名空间

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60609847

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档