【发布时间】:2019-06-08 20:02:16
【问题描述】:
我正在尝试从 XML 文件中获取值并列出唯一日期。 我在 XML 文件中获取日期,并且一天中有多个日期。
- 01.01.2018.
- 01.01.2018.
- 01.02.2018。
- 01.02.2018.
- 01.03.2018。
- 01.03.2018.
- 01.04.2018。
- 01.04.2018.
我想把所有这些日期都写成这样:
- 01.01.2018.
- 01.02.2018.
- 01.03.2018.
- 01.04.2018.
基本上,按顺序对它们进行排序,不要有多个相同的日期。
public static void ispisiAnalizuPoDanu()
{
List<Mjerenje> lMjerenja = UcitajMjerenja();
/* kreirati listu jedinstvenih datuma */
List<DateTime> jedinstveniDatumi = new List<DateTime>();
DateTime zadnji = new DateTime();
foreach (Mjerenje mjerenje in lMjerenja)
{
if (zadnji != mjerenje.datum)
{
jedinstveniDatumi.Add(mjerenje.datum);
}
zadnji = mjerenje.datum;
}
Console.WriteLine();
List<AnalizaPoDanu> analizePoDanima = new List<AnalizaPoDanu>();
foreach (DateTime datum in jedinstveniDatumi)
{
/* RAČUNANJE UKUPNOG BROJA MJERENJA */
int total = 0;
int zbroj = 0;
int mini = lMjerenja[0].vrijednost;
int maks = lMjerenja[0].vrijednost;
int prosjek = 0;
foreach (var mjerenje in lMjerenja)
{
if (mjerenje.datum == datum)
{
total = total + 1;
zbroj = zbroj + mjerenje.vrijednost;
if(mjerenje.vrijednost < mini)
{
mini = mjerenje.vrijednost;
}
if(mjerenje.vrijednost > maks)
{
maks = mjerenje.vrijednost;
}
}
}
prosjek = zbroj / total;
var analizaPoDanu = new AnalizaPoDanu(
datum,
total,
mini,
maks,
prosjek
);
analizePoDanima.Add(analizaPoDanu);
}
/*RAČUNANJE STANDARDNE DEVIJACIJE*/
Console.WriteLine("Prikaz svih mjerenja po danu: ");
var table = new ConsoleTable("Datum", "Total: ", "Min", "Max", "Prosjek: ");
foreach (AnalizaPoDanu mjerenje in analizePoDanima)
{
table.AddRow(mjerenje.Datum.ToString("dd.MM.yyyy"), mjerenje.Total, mjerenje.Min, mjerenje.Max, mjerenje.Prosjek);
}
table.Write();
Console.WriteLine();
}
数据样本:
<data>
<Mjerenja>
<Mjerenje id="1" vrijednost="3" dan="1" mjesec="1" godina="2018"></Mjerenje>
<Mjerenje id="2" vrijednost="4" dan="1" mjesec="1" godina="2018"></Mjerenje>
<Mjerenje id="3" vrijednost="5" dan="3" mjesec="1" godina="2018"></Mjerenje>
<Mjerenje id="4" vrijednost="6" dan="4" mjesec="1" godina="2018"></Mjerenje>
<Mjerenje id="5" vrijednost="7" dan="5" mjesec="1" godina="2018"></Mjerenje>
<Mjerenje id="6" vrijednost="8" dan="6" mjesec="1" godina="2018"></Mjerenje>
<Mjerenje id="7" vrijednost="9" dan="7" mjesec="1" godina="2018"></Mjerenje>
<Mjerenje id="8" vrijednost="10" dan="2" mjesec="1" godina="2018"></Mjerenje>
<Mjerenje id="9" vrijednost="5" dan="2" mjesec="1" godina="2018"></Mjerenje>
<Mjerenje id="10" vrijednost="7" dan="4" mjesec="1" godina="2018"></Mjerenje>
<Mjerenje id="11" vrijednost="2" dan="6" mjesec="1" godina="2018"></Mjerenje>
<Mjerenje id="12" vrijednost="4" dan="5" mjesec="1" godina="2018"></Mjerenje>
<Mjerenje id="13" vrijednost="12" dan="5" mjesec="1" godina="2018"></Mjerenje>
<Mjerenje id="14" vrijednost="10" dan="3" mjesec="1" godina="2018"></Mjerenje>
<Mjerenje id="15" vrijednost="2" dan="7" mjesec="1" godina="2018"></Mjerenje>
<Mjerenje id="16" vrijednost="3" dan="1" mjesec="1" godina="2018"></Mjerenje>
【问题讨论】:
-
真正简单地使用 XML Linq(网络中最新版本的 xml 解析器)。需要查看xml文件示例。
-
很抱歉这么愚蠢地发布问题...
-
我在问题中添加了 XML 文件
-
您可以查看此示例dotnetfiddle.net/fi2row
-
只是一个提示,下次您包含日期样本时。您可能想解释一下您的日期写成日、月、年,并用点作为分隔符。每个人都有不同的日期格式。您可能还想提供“vrijednost”、“dan”、“mjesec”和“godina”的英文翻译。 “godina”一个是,我猜是“年”