[C#/Linq] Sortera List<>
Håller på med ett projekt för Windows Phone och har lite problem med att få till en alfabetisk sortering av en List<> med hjälp av linq.
Struntar jag i raden som är markerad så laddas xml-filen in precis som den är.
Med den så funkar det dock inte alls, men kunde svurit på att det är så man gör i linq...
C#:
var vStudent = from s in doc.Descendants("Student")
orderby s.Element("FirstName") ascending // OBS! FUNKAR EJ
select new Word(s);
Datakällan är en xml-fil med följande struktur:
XML:
<?xml version="1.0" encoding="utf-8" ?>
<Students>
<Student>
<FirstName>Johan</FirstName>
<English>Ericsson</LastName>
</Student>
<Student>
<FirstName>Anders</FirstName>
<English>Andersson</LastName>
</Student>
<Student>
<FirstName>Peder</FirstName>
<LastName>Bertilsson</LastName>
</Student>
</Students>
Jag skickar med hela funktionen och lite mer kod om det skulle vara till hjälp:
private void btnSortDictionary_Click(object sender, RoutedEventArgs e)
{
IsolatedStorageFile.GetUserStoreForApplication().DeleteFile("Database.xml");
LoadDatabase2();
}
private void LoadDatabase2()
{
// Create: Instantiates new WordList
m_dbList = new WordList();
// Set: Url to xml
m_dbList.LoadAndSort_FirstCol("Database.xml");
lvData.ItemsSource = m_dbList;
}
public void LoadAndSort_FirstCol(string strXMLFile)
{
IsolatedStorageFile isfData = IsolatedStorageFile.GetUserStoreForApplication();
XDocument doc = null;
IsolatedStorageFileStream isfStream = null;
if (isfData.FileExists(strXMLFile))
{
isfStream = new IsolatedStorageFileStream(strXMLFile, FileMode.Open, isfData);
doc = XDocument.Load(isfStream);
isfStream.Close();
}
else
{
doc = XDocument.Load(strXMLFile);
isfStream = new IsolatedStorageFileStream(strXMLFile, FileMode.CreateNew, isfData);
doc.Save(isfStream);
isfStream.Close();
}
var vStudent = from s in doc.Descendants("Student")
orderby s.Element("FirstName") ascending // OBS! FUNKAR EJ
select new Word(s);
this.Clear();
AddRange(vStudent);
}
Bro!