tutorials.de Buch-Aktion 05/2012
Like Tree1Danke
  • 1 Beitrag von deepthroat
ERLEDIGT
JA
ANTWORTEN
1
ZUGRIFFE
1003
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Azubis Azubis ist offline Mitglied
    Registriert seit
    Nov 2008
    Beiträge
    17
    Hallo,
    ich verwende das erste mal LINQ to XML und habe Schwierigkeiten meinen XML Code zu generieren. Dateien öffnen und auslesen klappt wunderbar.

    Ich habe eine Klasse Picture und eine davon abgeleitete Reference. In Reference wird die Position gepseichert. In Picture hab ich 2 Integer Listen.

    So etwas soll am Ende rauskommen:
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    
    <puzzle>
     <reference id="0" position="Wert aus Reference Objekt">
      <edge id="0" x="1. Wert aus 1. Liste" y="1. Wert aus 2. Liste" />
      <edge id="1" x="2. Wert aus 1. Liste" y="2. Wert aus 2. Liste" />
      ...
     </reference>
     ...
    </puzzle>

    Die Methode dafür sieht momentan so aus:
    PHP-Code:
    public void saveXml(string url, List<Referencereferences)
    {
        
    XDocument doc = new XDocument();

        
    doc.Add(new XElement("puzzle",
            
    from re in references
            select 
    new XElement("references", new XAttribute("position"re.getPos()),
                
    from x in re.getX()
                
    select new XElement("edge", new XAttribute("x"x))
        )));
        
    doc.Save(url);

    getPos() liefert die Position
    getX() die 1. Liste. Die zweite Liste wäre getY()

    Das Ergebnis davon ist schonmal nicht schlecht, aber leider fehlen mir da drin noch die Wete aus der 2. Liste und die jeweiligen IDs. Die können aber beim abspeichern dynamisch erzeugt werden, also per i++ oder ähnlichem.

    Ich weiß aber nicht mehr weiter und auch über verschiedene Tutorials komm ich da nicht weiter, wie gesagt, das erste mal das ich mit LINQ arbeite.

    Danke!
    Geändert von Azubis (03.12.10 um 11:51 Uhr)
     

  2. #2
    deepthroat deepthroat ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Jun 2005
    Beiträge
    8.168
    Hi.

    Code csharp:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    
        XDocument doc = new XDocument();
     
        var id = 0;
        doc.Add(new XElement("puzzle",
                from re in references
                let xs = re.getX()
                let ys = re.getY()
                select
                new XElement("reference", new XAttribute("position", re.getPos()), new XAttribute("id", id++),
                    from i in Enumerable.Range(0, xs.Count)
                    select new XElement("edge", new XAttribute("id", i), new XAttribute("x", xs[i]), new XAttribute("y", ys[i]))
            )));
    Gruß
    Azubis bedankt sich. 
    If at first you don't succeed, try again. Then quit. No use being a damn fool about it.

Ähnliche Themen

  1. Linq & Aliase
    Von Mel_One im Forum .NET Datenverwaltung
    Antworten: 1
    Letzter Beitrag: 28.01.10, 21:05
  2. Linq Grouping
    Von dila71 im Forum .NET Datenverwaltung
    Antworten: 0
    Letzter Beitrag: 12.05.09, 12:43
  3. [LINQ] Index by value
    Von StupidBoy im Forum .NET Café
    Antworten: 0
    Letzter Beitrag: 13.01.09, 18:39
  4. FK ändern mit LINQ to SQL
    Von marcoD im Forum .NET Datenverwaltung
    Antworten: 3
    Letzter Beitrag: 13.11.08, 15:00
  5. Linq VB2005
    Von bolshi im Forum .NET Datenverwaltung
    Antworten: 3
    Letzter Beitrag: 22.04.08, 15:25