Я новичок в C #, только начал 2 дня назад, потому что мне нужно создать простой проект для моих классов кодирования в университете, к сожалению, у нас было 3 дня, чтобы завершить код, поэтому я отстал на 1 день, но это не имеет значения . Я создал список кортежей, используя code fount @ whatacode.wordpress.com.

public class TupleList<int, string, string, int, int, string, int> : List<Tuple<int, string, string, int, int, string, int>>
   {
       public void Add(int IDL, string AlbNmL, string ArtL, int RelDL, int TrAmnL, string LocL, int RatL)
       {
           Add(new Tuple<int, string, string, int, int, string, int>(ID, AlbNm, Art, RelD, TrAmn, Loc, Rat));
       }
   }

Мне нужно создать список, если это первое добавление к кортежу, поэтому я использовал if

 if (currid == 0)
       {
           var Albums = new TupleList<int, string, string, int, int, string, int>
        {
            {ID, AlbNm, Art, RelD, TrAmn, Loc, Rat},
        };

       }

Мой ID, AlbNm, Art, RelD, TrAmn, Loc, Rat являются результатом строк чтения и т. Д., На самом деле не имеет значения. (или нет ??) Я использую currid как индикатор, является ли он первым или нет (он начинается с 0 и ++ в конце функции добавления.

Теперь мой вопрос в том, как я могу использовать метод ADD моего класса TupleList, чтобы добавить их (ID, AlbNm, Art, RelD, TrAmn, Loc, Rat, которые я получил из строк чтения) в качестве следующего кортежа. я использовал

if(currid > 0) 

Но я действительно не знаю, что в это вложить, если. Надеюсь, мой вопрос понятен в любом% и что кто-то может мне помочь :) Заранее спасибо.

2
Easy 21 Май 2014 в 13:56

2 ответа

Лучший ответ

Было бы намного лучше создать класс альбома и составить список альбомов

public class Album
{
    public string Name {get;set;}
    public string Artist {get; set;}
    public Album(string _name, string _artist)
    {
         Name = _name;
         Artist = _artist;
    }
}


Album example = new Album("a", "good idea");

List<Album> listOfAlbums = new List<Album>();
listOfAlbums.Add(example);
3
Sayse 21 Май 2014 в 10:06

Во-первых, вы можете просто использовать List<Tuple<int, string, string, int, int, string, int>>

Во-вторых, ваш список находится только в фигурных скобках {} оператора if (currid == 0). Это означает, что его не существует снаружи, поэтому вам нужно объявить его вне if. Затем вы можете использовать Добавить. Но также обратите внимание, что у Tuple есть метод Factory:

List<Tuple<<int, string, string, int, int, string, int>> Albums;
if (currid == 0) {
    Albums = new TupleList<int, string, string, int, int, string, int>();
}
Albums.Add(Tuple.Create(ID, AlbNm, Art, RelD, TrAmn, Loc, Rat));
1
Dennis_E 21 Май 2014 в 10:09