Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    [VB.NET] usare Linq to XML con GroupBy

    Ciao lo schema XML è il seguente

    codice:
    <TipologieStrutture>
      <TipologiaStruttura Descrizione="ADAC-CAMPCARD">
        <Da>B001</Da>
        <A>B999</A>
      </TipologiaStruttura>
      <TipologiaStruttura Descrizione="APPARTAMENTO BILOCALE">
        <Da>9001</Da>
        <A>9007</A>
      </TipologiaStruttura>
      <TipologiaStruttura Descrizione="BESTDEAL Camping Card">
        <Da>D001</Da>
        <A>D999</A>
      </TipologiaStruttura>
      <TipologiaStruttura Descrizione="BILOCALE 3 PERSONE">
        <Da>5022</Da>
        <A>5040</A>
      </TipologiaStruttura>
      <TipologiaStruttura Descrizione="BILOCALE BILOCALE">
        <Da>6022</Da>
        <A>6026</A>
      </TipologiaStruttura>
      <TipologiaStruttura Descrizione="BUNGALOW BILOCALE">
        <Da>6027</Da>
        <A>6029</A>
      </TipologiaStruttura>
      <TipologiaStruttura Descrizione="BUNGALOW BILOCALE">
        <Da>6030</Da>
        <A>6031</A>
      </TipologiaStruttura>
    </TipologieStrutture>
    Vorrei effettuare una query Linq raggruppando in base al valore della Descrizione, pertanto eliminare i doppioni.

    attualmente utilizzo il seguente codice ma visualizza tutti i nodi senza raggruppamento

    codice:
     Dim numberGroups1 = From n In doctipo...<TipologiaStruttura> Group n By key = n.Attribute("Descrizione") Into Group _
                                   Select Remainder = key, NumberGroup = Group
    
                For Each g In numberGroups1
                    MsgBox(g.Remainder)
                    ' For Each n In g.NumberGroup
                    'MsgBox(n)
                    'Next
                Next
    Ho letto parecchio al riguardo ma non mi ci entra proprio, qualcuno può aiutarmi!! Ciao

  2. #2
    Utente di HTML.it L'avatar di albgen
    Registrato dal
    Jun 2005
    Messaggi
    3,249
    è il raggruppamento che è sbagliato. Dovrebbe essere cosi' n.Attribute("Descrizione").Value

    codice:
    XElement xml = XElement.Parse (
    	@"<TipologieStrutture>
    	  <TipologiaStruttura Descrizione='ADAC-CAMPCARD'>
    		<Da>B001</Da>
    		<A>B999</A>
    	  </TipologiaStruttura>
    	  <TipologiaStruttura Descrizione='APPARTAMENTO BILOCALE'>
    		<Da>9001</Da>
    		<A>9007</A>
    	  </TipologiaStruttura>
    	  <TipologiaStruttura Descrizione='BESTDEAL Camping Card'>
    		<Da>D001</Da>
    		<A>D999</A>
    	  </TipologiaStruttura>
    	  <TipologiaStruttura Descrizione='BILOCALE 3 PERSONE'>
    		<Da>5022</Da>
    		<A>5040</A>
    	  </TipologiaStruttura>
    	  <TipologiaStruttura Descrizione='BILOCALE BILOCALE'>
    		<Da>6022</Da>
    		<A>6026</A>
    	  </TipologiaStruttura>
    	  <TipologiaStruttura Descrizione='BUNGALOW'>
    		<Da>6027</Da>
    		<A>6029</A>
    	  </TipologiaStruttura>
    	  <TipologiaStruttura Descrizione='BUNGALOW'>
    		<Da>6030</Da>
    		<A>6031</A>
    	  </TipologiaStruttura>
    	</TipologieStrutture>");
    	
    	var a = from element in xml.Elements() group element by  element.Attribute("Descrizione").Value;
    I got the remedy

  3. #3
    ho provato, ma richiede la clausola "Into" dopo ...Value

  4. #4
    Utente di HTML.it L'avatar di albgen
    Registrato dal
    Jun 2005
    Messaggi
    3,249
    Il problema era che tu raggruppavi per istanza del tipo attribute e non per il valore contenuto.
    Quindi anche se due istanze di attribute hanno lo stesso attributo non vuol dire che sono la stessa cosa ed ecco perchè ti creava gruppi differenti per lo stesso attributo.
    La soluzione è quella che ti ho fornito ovvero raggruppare per valore dell'attribute.

    Non mi resta che dirti di vedere come funziona il group by in linq perché chiaramente se ti scrivo io la query linq(anche se ti ho già fatto un esempio) non impari come funziona il meccanismo ma semplicemente come si dice "hai avuto la pappa pronta"
    I got the remedy

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.