может быть небольшая проблема, но я не понимаю, что здесь не так.
Приведенный ниже код предназначен для XML-файла (пример также ниже) и пытается вычислить абсолютную минимальную дату и абсолютную максимальную дату из всех одних и тех же событий по всем потомкам элемента «eventBlocks». (самая ранняя/самая поздняя дата всех элементов EventC,...)
Как вы можете видеть, одна из конечных дат для «ElementC» (например) имеет endDate «14.01.2011». Это должно быть мое значение MaxDateTo. Но результат показывает вычисленное значение maxEndDate, равное «06.01.2011», и игнорирует правильное значение.
Я предполагаю, что компаратор принимает его как строку или целое число и дает неверный результат.
Что (и как) мне нужно сделать, чтобы рассчитать правильные максимальные и минимальные даты?
Заранее спасибо Маркус
var xmlDoc = XDocument.Load(@"c:\Temp\MergedCalendar2011.xml");
var result = from vb in xmlDoc.Descendants("eventBlock")
group vb by vb.Attribute("eventName").Value into blocks
orderby blocks.Key ascending
select new
{
BlockName = blocks.Key,
MinDateFrom = blocks.Min(min => min.Attribute("start").Value),
MaxDateTo = blocks.Max(max => max.Attribute("end").Value),
};
Это XML:
<?xml version="1.0" standalone="yes"?>
<year year="2011" id="year2011">
<state name="Baden Wuerttemberg" >
<eventBlocks>
<eventBlock eventName="EventX" start="4/21/2011" end="4/22/2011" />
<eventBlock eventName="EventX" start="4/26/2011" end="5/1/2011" />
<eventBlock eventName="EventZ" start="6/14/2011" end="6/26/2011" />
<eventBlock eventName="EventA" start="7/28/2011" end="9/11/2011" />
<eventBlock eventName="EventB" start="10/31/2011" end="11/1/2011" />
<eventBlock eventName="EventB" start="11/2/2011" end="11/5/2011" />
<eventBlock eventName="EventC" start="1/1/2011" end="1/14/2011" />
<eventBlock eventName="EventC" start="12/23/2011" end="1/14/2012" />
</eventBlocks>
</state>
<state name="Brandenburg" >
<eventBlocks>
<eventBlock eventName="EventY" start="1/31/2011" end="2/6/2011" />
<eventBlock eventName="EventX" start="4/20/2011" end="5/1/2011" />
<eventBlock eventName="EventZ" start="6/3/2011" end="6/4/2011" />
<eventBlock eventName="EventA" start="6/30/2011" end="8/14/2011" />
<eventBlock eventName="EventB" start="10/4/2011" end="10/15/2011" />
<eventBlock eventName="EventC" start="1/1/2011" end="1/2/2011" />
<eventBlock eventName="EventC" start="12/23/2011" end="1/1/2012" />
</eventBlocks>
</state>
<state name="Bremen">
<eventBlocks>
<eventBlock eventName="EventY" start="1/31/2011" end="2/2/2011" />
<eventBlock eventName="EventX" start="4/16/2011" end="5/1/2011" />
<eventBlock eventName="EventZ" start="6/3/2011" end="6/4/2011" />
<eventBlock eventName="EventZ" start="6/14/2011" end="6/15/2011" />
<eventBlock eventName="EventA" start="7/7/2011" end="8/18/2011" />
<eventBlock eventName="EventB" start="10/17/2011" end="10/30/2011" />
<eventBlock eventName="EventC" start="1/1/2011" end="1/6/2011" />
<eventBlock eventName="EventC" start="12/23/2011" end="1/1/2012" />
</eventBlocks>
</state>
</year>