Tableau nombre de ligne ?

ronando Messages postés 141 Date d'inscription lundi 24 décembre 2001 Statut Membre Dernière intervention 5 juillet 2007 - 18 avril 2007 à 11:49
edwinzap Messages postés 159 Date d'inscription samedi 29 septembre 2012 Statut Membre Dernière intervention 21 juin 2016 - 20 avril 2015 à 23:55
Bonjour, question de débutant : j'initialise un tableau en C# et j'aimerai savoir s'il existe une propriété de ce tableau pour connaitre le nombre de dimension (le nombre de lignes du tableau) ? (pour pouvoir boucler dessus)

Merci ,

----

 

8 réponses

edwinzap Messages postés 159 Date d'inscription samedi 29 septembre 2012 Statut Membre Dernière intervention 21 juin 2016 1
20 avril 2015 à 19:55
Tab.GetLength(0) donne la taille de la première dimension (colonne par ex)
Tab.GetLength(1) donne la taille de la deuxième dimension (ligne par ex)
1
Whismeril Messages postés 18427 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 10 juin 2023 624
20 avril 2015 à 22:38
Bonsoir, 8 ans après, est ce vraiment utile, alors que la réponse est déjà simple à trouver partout?
0
edwinzap Messages postés 159 Date d'inscription samedi 29 septembre 2012 Statut Membre Dernière intervention 21 juin 2016 1
20 avril 2015 à 23:55
Je ne met la réponse que parce que j'ai du la chercher moi-même. Ainsi les prochains n'auront pas besoin de chercher plus loin. Et si c'était vraiment aussi simple comme réponse, pq personne ne lui a donnée à l'époque???

Bien à vous
0
cs_Warwick Messages postés 81 Date d'inscription vendredi 1 février 2002 Statut Membre Dernière intervention 8 octobre 2007
18 avril 2007 à 12:01
Différentes infos s'offrent à toi
tab.Length (nombre d'éléments toutes dimensions confondues sur 32 bits)


tab.LongLength (nombre d'éléments toutes dimensions confondues sur 64 bits)



tab.Rank (nombre de dimensions)

Sinon pour boucler dessus, regarde la structure foreach.
Exemple pour un tableau d'entier :
foreach (int i in tab)
 traitements...;

Warwick.
0
ronando Messages postés 141 Date d'inscription lundi 24 décembre 2001 Statut Membre Dernière intervention 5 juillet 2007
18 avril 2007 à 14:10
tab.Length






tab.LongLength






tab.Rank



Ces 3 propriétés ne me donnent pas le nombre de ligne dans mon tableau ?.

Sinon le foreach est pas mal mais dans mon cas n'est pas adapté car par exemple dans mon tableau j'ai une liste de voiture disons :
tab[0][0]="6587YA29" // immatriculation
tab[0][1]="peugeot" // marque
tab[0][2]="noir" //couleur
etc ..

Je veux l'afficher dans un tableau html :

foreach (
object obj
in resultat)
{
Response.Write(
"<tr>");

if (obj
is
int)
Response.Write(
"<td>" + (
int)obj +
"</td>");

else
if (obj
is
String)
Response.Write(
"<td>" + (
String)obj +
"</td>");
Response.Write(
"</tr>");
}

Forcement ca ne fonctionne pas car il ne passe pas ligne par ligne de tableau..

Bref je suis bloqué ..
0
cs_Warwick Messages postés 81 Date d'inscription vendredi 1 février 2002 Statut Membre Dernière intervention 8 octobre 2007
18 avril 2007 à 15:28
Ton tableau est comme une matrice,
il faut faire un double for peut être genre

for (int i = 0, i < tab.Length; i++)
{
   

Response.Write(

"<tr>"
);






   
for (int j = 0, j < tab.Rank; j++)
    {
       

if
(tab[i][j]

is
int
)
        Response.Write(

"<td>"
+ (

int
)




tab[i][j]




+

"</td>"
);


        else
if
(




tab[i][j]







is
String
)
        Response.Write(

"<td>"
+ (

String
)




tab[i][j]




+

"</td>"
);






    }
   

Response.Write(

"</tr>"
);







}





Bref, là j'ai rien pour tester mais peut être un truc dans ce gout là...

Warwick.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ronando Messages postés 141 Date d'inscription lundi 24 décembre 2001 Statut Membre Dernière intervention 5 juillet 2007
18 avril 2007 à 15:33
Oui je suis d accord c'est la bonne méthode mais le tab.Length ne me retourne pas le nombre de ligne du tableau !! Ca retourne autre chose je sais pas quoi mais le nombre de ligne dans le tableau ... ??
0
ronando Messages postés 141 Date d'inscription lundi 24 décembre 2001 Statut Membre Dernière intervention 5 juillet 2007
18 avril 2007 à 16:08
Peut etre que ca ne fonctionne pas car j'utilise pas un Array mais un Object ..


Sinon j'ai trouvé un autre moyen de recuperer le nombre de ligne, c'est plus long mais ca fonctionne
0
cs_Warwick Messages postés 81 Date d'inscription vendredi 1 février 2002 Statut Membre Dernière intervention 8 octobre 2007
18 avril 2007 à 16:49
tab.Length te retourne le nombre total de "cases" du tableau je crois, et tab.Rank le nombre de dimensions.

En divisant tab.Length par tab.Rank, tu as normalement le nombre de lignes.

Warwick.
0
cs_tazagaga Messages postés 31 Date d'inscription mardi 6 novembre 2007 Statut Membre Dernière intervention 23 février 2009
Modifié par Whismeril le 20/04/2015 à 22:37
bonjour c'est absolument ce que je cherche mais apparement ce n'est pas terminer.

j'annonce je suis débutant :)

juste une chose, moi mes donnée sont issue d'une table sous sql server 2005. la connexion a sql server est faite, et fonctionne correctement (c'est la seul chose d'ailleur lol)
je veut mettre dans ce tableau (en html) ces donnée (de ma table) , mon tableau doit etre dynamique

voila mon code je ne pense pas que tout les "data" doivent etre utile


using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using score_lib;
using System.Data.SqlClient;
using System.IO;
using System.Data.Common;

namespace gestscore
{
    public partial class Import_data2 : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            //ouverture de connexion avec la chaine de connection
            Cscore_lib instance1 = new Cscore_lib();
            SqlConnection connexion = new SqlConnection(instance1.chaine_de_connexion());
            connexion.Open();
            //gestion des exeption
            try
            {
                //lancement de la procedure stocké import_data2
                string id_indicateur = Request.Form["id"];
                SqlCommand commande4 = null;
                commande4 = new SqlCommand("Import_Data2", connexion);
                commande4.CommandType = CommandType.StoredProcedure;

                //entrée des parametre de la procédure sotckée
                SqlParameter parametre_id = new SqlParameter("@ID", SqlDbType.VarChar, 0);
                parametre_id.Value = id_indicateur;
                commande4.Parameters.Add(parametre_id);
                SqlParameter erreur = new SqlParameter("@nbrowscum", SqlDbType.Int, 4);
                erreur.Direction = ParameterDirection.Output;
                commande4.Parameters.Add(erreur);


                string strRequete = "SELECT * FROM majpz order by IDlibelle, IDgeo, periode";
                // Objet Command
                SqlCommand command = new SqlCommand(strRequete, connexion);
                // création du dataset
                DataSet ds = new DataSet();
                //création d'une datatable
                DataTable majpz = new DataTable("majpz");

                             
                
                for (int i = 0, i < majpz.Length, i++);
                    {
                        Response.Write( "<tr>" ); 
                        for (int j = 0, j < tab.Rank, j++);
                        {
                            if (tab[i][j] is int )
                            Response.Write( "<td>" + ( int ) tab[i][j] + "</td>" );
                            else if ( tab[i][j] is String )
                            Response.Write( "<td>" + ( String ) tab[i][j] + "</td>" ); 
                        }
                        Response.Write( "</tr>" ); 
                    }

                //création du data adapter
                SqlDataAdapter da_majpz = new SqlDataAdapter();              
                

                //equivalent du system"pause"(attente de saisie de l'utilisateur)
                Console.ReadLine();
                                
            }
            catch (SqlException sqlerr)
            {
                Response.Write("<table>");
                Response.Write("
" + sqlerr.Message.ToString());
            }
            // Fermeture connection
            connexion.Close();
        }
    }
}



donc majpz est ma table remplis précedement par une requete paramétré
voila je sui a votre ecoute et ca fait 2 semaine que je suis sur ce probleme
0