Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
.NET Framework
Ciclare su enum
giovedì 11 dicembre 2008 - 14.43
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
liveforever81
Profilo
| Junior Member
104
messaggi | Data Invio:
gio 11 dic 2008 - 14:43
Salve a tutti,
ho una tabella di una DataSet che mi serve per manipolare dei dati.
Ciò che devo fare è considerare solo un sottoinsieme delle righe di tale tabella: in particolare il discriminante è dato dal valore di solo un sottoinsieme di colonne.
Cerco di spiegarmi:
ho tale tabella con 10 righe e 25 colonne;
mi serve un sottoinsieme di tali righe sulla base dei valori di alcune (non tutte).
In primis ho creato una enum che contenesse gli stessi nomi delle colonne in modo da avere un mapping e lavorare lì coi nomi;
Come faccio a referenziare solo una parte (ad esempio 10 di esse, però in ordine sparso) delle colonne?
Usando questa tecnica:
foreach(DataRow dr in dt.Rows)
{
for (int i=0; i<dt.Columns.Count; i++)
{
// fa qualcosa
}
}
ovviamente io considero TUTTE le colonne mentre mi serve controllarne solo un suo sottoinsieme, sfruttando l'enum da me creata.
Mi potete aiutare?
Grazie
PS: spero d'esser stato chiaro!
0v3rCl0ck
Profilo
| Guru
1.120
messaggi | Data Invio:
gio 11 dic 2008 - 14:49
>Salve a tutti,
Ciaoo
>
>ho una tabella di una DataSet che mi serve per manipolare dei
>dati.
>Ciò che devo fare è considerare solo un sottoinsieme delle righe
>di tale tabella: in particolare il discriminante è dato dal valore
>di solo un sottoinsieme di colonne.
>
>Cerco di spiegarmi:
>ho tale tabella con 10 righe e 25 colonne;
>mi serve un sottoinsieme di tali righe sulla base dei valori
>di alcune (non tutte).
>
>In primis ho creato una enum che contenesse gli stessi nomi delle
>colonne in modo da avere un mapping e lavorare lì coi nomi;
>
>Come faccio a referenziare solo una parte (ad esempio 10 di esse,
>però in ordine sparso) delle colonne?
>
>Usando questa tecnica:
>
>foreach(DataRow dr in dt.Rows)
>{
> for (int i=0; i<dt.Columns.Count; i++)
> {
> // fa qualcosa
> }
>}
>
>ovviamente io considero TUTTE le colonne mentre mi serve controllarne
>solo un suo sottoinsieme, sfruttando l'enum da me creata.
>
>Mi potete aiutare?
E' possibile "ciclare" un enum (
http://msdn.microsoft.com/en-us/library/system.enum.getnames.aspx
), ma se invece di creare un enum ti crei una collezione, che poi diventerà il tuo sotto insieme di colonne da considerare nel ciclo?
>Grazie
-------------------------------------------------------------------
Michael Denny
Senior Software Developer
Microsoft Framework (C# ASP.NET VB.NET)
http://blogs.dotnethell.it/Regulator/
liveforever81
Profilo
| Junior Member
104
messaggi | Data Invio:
gio 11 dic 2008 - 14:54
Ciao e grazie per la risposta!
La soluzione delle collezioni mi "affascina".
Dove trovo maggiori tips?
Infine: con quel foreach io comunque ciclo su tutta la enum e quindi apparentemente è simile al mio ciclo for di prima...o sbaglio?
alx_81
Profilo
| Guru
8.814
messaggi | Data Invio:
gio 11 dic 2008 - 15:13
>Salve a tutti,
Ciao!
>Come faccio a referenziare solo una parte (ad esempio 10 di esse,
>però in ordine sparso) delle colonne?
se vuoi escludere le colonne devi fare un if che controlla se la tua i fa match con l'enum. In quel caso puoi
o ricrearti un datatable o rimuovere le colonne dal datatable del dataset già caricato (DataTable.Columns.Remove).
>Grazie
di nulla!
--
Alessandro Alpi | SQL Server MVP
http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
http://italy.mvps.org
0v3rCl0ck
Profilo
| Guru
1.120
messaggi | Data Invio:
gio 11 dic 2008 - 15:19
>Ciao e grazie per la risposta!
>
>La soluzione delle collezioni mi "affascina".
>Dove trovo maggiori tips?
Qui ci sono le principali collezioni:
http://msdn.microsoft.com/en-us/library/system.collections.aspx
Poi ci sono quelle introdotte dal 2.0, molto interessanti, le collezioni generiche e specializzate:
http://msdn.microsoft.com/en-us/library/system.collections.generic.aspx
http://msdn.microsoft.com/en-us/library/system.collections.specialized.aspx
Sicuramente troverai la collezione che fa al caso tuo, ad esempio una StringCollection:
http://msdn.microsoft.com/en-us/library/system.collections.specialized.stringcollection.aspx
Poi esistono funzioni che sicuramente ti faranno comodo, come Contains che data la stringa ti dice se esiste nella collezione:
http://msdn.microsoft.com/en-us/library/system.collections.specialized.stringcollection_members.aspx
http://msdn.microsoft.com/en-us/library/system.collections.specialized.stringcollection.contains.aspx
>
>Infine: con quel foreach io comunque ciclo su tutta la enum e
>quindi apparentemente è simile al mio ciclo for di prima...o
>sbaglio?
Con il foreach che hai messo nel post precedente, ciclavi su tutte le colonne del datatable.
-------------------------------------------------------------------
Michael Denny
Senior Software Developer
Microsoft Framework (C# ASP.NET VB.NET)
http://blogs.dotnethell.it/Regulator/
Torna su
Stanze Forum
Elenco Threads
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?
Dopo esserti registrato potrai chiedere
aiuto sul nostro
Forum
oppure aiutare gli altri
Consulta le
Stanze
disponibili.
Registrati ora !