Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: C#: Lista listan sisällä

Jonne [12.06.2013 18:53:44]

#

En nyt oikein kykene hahmottamaan, miten lista listan sisällä toimii, kun tyyppinä on luokka.

class User
{
    public int pID;

    public User(int pID)
    {
        this.pID = pID;
    }
}

public List<List<User>> users = new List<List<User>>();

Mitenkä lisään elementin listaan?

fergusq [12.06.2013 19:25:10]

#

Oletan, että kieli on C#.

Tee uusi lista.

List<User> userlist = new List<User>();
userlist.Add(new User(1));
userlist.Add(new User(2));

Ja lisää tämä uusi lista "users" -listaan.

users.Add(userlist);

Nyt sinulla on lista, jonka sisällä on lista, joka sisältää 2 käyttäjää.

groovyb [12.06.2013 21:12:42]

#

Tuosta saa myös vähän inhimillisemmän wräppäämällä toisen listan:

public class UserCollection : List<User>
{
}

public class User
{
    public int pID;
    public User(int pID)
    {
        this.pID = pID;
    }
}


//...................

List<UserCollection> Lists = new List<UserCollection>();

UserCollection UC1 = new UserCollection();
UC1.add(new User(1));
UC1.add(new User(2));

UserCollection UC2 = new UserCollection();
UC2.add(new User(1));
UC2.add(new User(2));

lists.add(UC1);
lists.add(UC2);

Metabolix [13.06.2013 05:41:31]

#

Eihän sitä listaa ole pakko noin tehdä, vaan sen voi myös lisätä ensin ja täyttää sitten.

List<List<string>> data = new List<List<string>>();
data.Add(new List<string>()); // data[0]
data.Add(new List<string>()); // data[1]
data[0].Add("apina");    // data[0][0]
data[0].Add("banaani");  // data[0][1]
data[1].Add("cembalo");  // data[1][0]
data[1].Add("delfiini"); // data[1][1]
System.Console.WriteLine(data[1][1]); // "delfiini"

Olennainen juttu tässä on, että kun listoja sisältävä lista on luotu, se ei vielä sisällä yhtäkään listaa, vaan kaikki sisemmätkin listat pitää itse luoda ja lisätä.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta