У меня есть XML-файл, который я пытаюсь группировать по атрибуту «Ширина». Вот отрывок:Нужна помощь с LinqToXml grouping
<nodes>
<FieldType Name="1000" OriginalName="1000" ScriptName="" SqlType="12" Width="1000" EnableValues="0" Scale="0" ForceMatch="0" ForceMatchCaseSensitive="0" SortAlphabetically="0" />
<FieldType Name="Varchar 1000" OriginalName="Varchar1000" ScriptName="" SqlType="12" Width="1000" EnableValues="0" Scale="0" ForceMatch="0" ForceMatchCaseSensitive="0" SortAlphabetically="0" />
<FieldType Name="Varchar 10001" OriginalName="Varchar1000" ScriptName="" SqlType="12" Width="1000" EnableValues="0" Scale="0" ForceMatch="0" ForceMatchCaseSensitive="0" SortAlphabetically="0" />
<FieldType Name="2000" OriginalName="1000" ScriptName="" SqlType="12" Width="200" EnableValues="0" Scale="0" ForceMatch="0" ForceMatchCaseSensitive="0" SortAlphabetically="0" />
<FieldType Name="Varchar 200" OriginalName="Varchar1000" ScriptName="" SqlType="12" Width="200" EnableValues="0" Scale="0" ForceMatch="0" ForceMatchCaseSensitive="0" SortAlphabetically="0" />
<FieldType Name="Varchar 2001" OriginalName="Varchar1000" ScriptName="" SqlType="12" Width="200" EnableValues="0" Scale="0" ForceMatch="0" ForceMatchCaseSensitive="0" SortAlphabetically="0" />
<FieldType Name="Y/N" ScriptName="" SqlType="12" Width="1" EnableValues="1" ForceMatch="1" Scale="0" ForceMatchCaseSensitive="0" SortAlphabetically="0" />
Я хочу, чтобы мой синтаксического анализа, чтобы вернуть 2 значения, 1000 и 2000, так как я хочу, уникальные ширины. Код я написал это:
XDocument xmlDoc = XDocument.Load(@"c:\temp\sample.xml");
var q = from c in xmlDoc.Descendants("FieldType")
group xmlDoc by c.Attribute("Width") into cust_widths
select new
{
key = cust_widths.Key,
value = from val in cust_widths.Elements("Width") select (string)val
};
foreach (var name in q)
{
System.Diagnostics.Debug.WriteLine(name);
}
Но все равно возвращается: 1000, 1000, 1000, 200, 200, 200.
Любая идея, что случилось с моим синтаксисом?
Человек, я был рядом! Я предполагаю, что добавленная стоимость сделала каждую строку уникальной. Спасибо, мне нравится ваша более простая версия еще лучше, нужно любить linq. –