может быть, маленькая проблема, но я не понимаю, что здесь не так.
Приведенный ниже код нацелен на файл XML (пример также ниже) и пытается рассчитать абсолютную минимальную дату и абсолютную максимальную дату из всех одинаковых событий для всех потомков элемента 'eventBlocks'. (самая ранняя / самая поздняя дата всех элементов 'EventC', ...)
Как вы можете видеть, одна из конечных дат для «ElementC» (для примера) имеет конечную дату «14.01.2011». Это должно быть моим значением MaxDateTo. Но результат показывает рассчитанную maxEndDate «1/6/2011» и игнорирует правильное значение.
Я предполагаю, что компаратор принимает его как строку или int и выдает неверный результат.
Что (и как) я должен сделать, чтобы вычислить правильные максимальные и минимальные даты?
Заранее спасибо
Marcus
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>