Я разрабатываю приложение для Windows Store. У меня есть такой XML:WinStore App Listview: Избегание нескольких строк с тем же именем
<?xml version="1.0" encoding="utf-8" ?>
<music>
<singer>
<name>Coldplay</name>
<song>Scientist</song>
<lyrics>lol lalala</lyrics>
</singer>
<singer>
<name>Coldplay</name>
<song>test2</song>
<lyrics>lol lalala2</lyrics>
</singer>
<singer>
<name>another</name>
<song>şarkı</song>
<lyrics>lol lalala3</lyrics>
</singer>
</music>
Код C#, "lvSingers" - мой список. Я записал там имена певцов.
private void Page_Loaded(object sender, RoutedEventArgs e)
{
string musicXMLPath = Path.Combine(Package.Current.InstalledLocation.Path, "Assets/test.xml");
XDocument loadedData = XDocument.Load(musicXMLPath);
var data = from query in loadedData.Descendants("singer")
select new Singer
{
name = (string)query.Element("name"),
song = (string)query.Element("song"),
akor = (string)query.Element("lyrics")
};
lvSingers.ItemsSource = data;
}
}
Когда я запускаю этот код, я получаю несколько имен певцов, я хочу этого избежать. Пример:
Coldplay
Coldplay
another
Я просто хочу иметь ТОЛЬКО один Coldplay. Короче всего, я хочу, это отличный результат. Буду признателен за ваши отзывы и помощь. С уважением ...
В вопросе SO есть хороший образец, который вы можете использовать; посмотрите http://stackoverflow.com/questions/1021679/linq-to-xml-noob-question-distinct-and-order-by-on-attributes – Joe
Спасибо за помощь, но она не работает. Я уже пробовал это. – Alasse