Array-de-array problème (System.NullReferenceException) [Résolu]

Messages postés
51
Date d'inscription
mardi 26 décembre 2000
Dernière intervention
13 avril 2011
- - Dernière réponse : ed73
Messages postés
276
Date d'inscription
lundi 8 septembre 2008
Dernière intervention
15 avril 2013
- 3 nov. 2010 à 23:41
Je veux créer un array a deux dimension qui supporte les strings.

ex:

monArray[0][0] = "bonjour";
monArray[0][1] = "salut";
monArray[1][0] = "patate";
...etc

Selon moi le problème dans mon code est:
private static String[][] KeysCollection;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Diagnostics;
using System.Windows.Forms;

namespace mon_projet
{
    class maClasse
    {
        private static String[][] KeysCollection;
        public static void loadIni()
        {
            IniFile ini = new IniFile();
            ini.Load(MainForm.ini_path);
            foreach (IniFile.IniSection s in ini.Sections)
            {
                Console.WriteLine(string.Format("Section: [{0}]", s.Name));
                int i = 0;
                foreach (IniFile.IniSection.IniKey k in s.Keys)
                {
                    if (k.Value != String.Empty)
                    {
                        Console.WriteLine(string.Format("Key: {0}={1}", k.Name, k.Value));
                    }
                    else
                    {
                        Console.WriteLine(string.Format("Key: {0}", k.Name));
                    }
                    if (k.Name == "connectionstring")
                    {
                        Program.connectionString = k.Name;
                    }
                    else
                    {
                        KeysCollection[i][0] = "%" + k.Name + "%";
                        KeysCollection[i][1] = k.Value;
                    }
                    i++;
                }
            }

            foreach (String[] KeyArray in KeysCollection)
            {
                Program.connectionString = Program.connectionString.Replace(KeyArray[0], KeyArray[1]);
                //KeyArray[1]
            }
            MessageBox.Show(Program.connectionString);

        }
    }
}


Merci en avance
Afficher la suite 

Votre réponse

1 réponse

Meilleure réponse
Messages postés
276
Date d'inscription
lundi 8 septembre 2008
Dernière intervention
15 avril 2013
2
3
Merci
Bonjour,

Il faudrait peut-être penser à instancier tes taleaux :

KeysCollection = new String[10][];
for(int i = 0; i < 10; i++)
KeysCollection[i] = new String[2];

Remplace 10 par le nombre d'éléments de s.keys que tu dois certainement connaître après le chargement de ton fichier ini.

Cependant comme la première dimension de ton tableau n'est pas connue à l'avance, il serait plus judicieux d'utiliser une liste telle que List<String[]> ou mieux encore une List<NameValue> avec

public class NameValue
{
public String Name,Value;
}

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 120 internautes nous ont dit merci ce mois-ci

Commenter la réponse de ed73

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.