sabolch
@sabolch
Web devoloper

Как вернуть список классов List в C#?

Необходимо написать функцию, которая принимает значение string и возвращает список классов. Например, возвращается:
1 Россия
2 Украина
3 Германия
4 Франция

то есть id и name. Это нужно передавать как лист классов. Вот, что пока есть:

public class MLandl
{
  public static class MainLand
  {
    public int id; // id материка
    public int id_country; // id страны
    public string name; // название страны
    public string data_osn; // дата основания
    public string data_ras; // дата распада
  }
        
  public static MainLand GetCountryList(string id)
  {
    // возврат списка стран (лист классов)
    // запрос к БД
  }
}


В Google никак не наткнусь на то, что требуется. Буду рад, если поищете за меня, но лучше, если поможете разобраться :)
  • Вопрос задан
  • 6323 просмотра
Пригласить эксперта
Ответы на вопрос 4
@mayorovp
Во-первых, разберитесь с терминологией. Судя по вашим репликам, вам надо возвращать не "список классов", а "список экземпляров класса MainLand".

Во-вторых, в чем вообще проблема? Нужный возвращаемый тип - это List<MainLand>, IEnumerable<MainLand> или MainLand[] - выбирайте любой. Или у вас проблема в том, чтобы его создать? Создаются они так:

Конструктор списка:
new List<MainLand> {
  new MainLand { ... },
  new MainLand { ... },
  new MainLand { ... },
  new MainLand { ... },
  new MainLand { ... },
};


Как альтернатива, список можно создать пустым и заполнить вызывая метод Add (конструктор списка, кстати, так "за кулисами" и делает).

Конструктор массива:
new[] {
  new MainLand { ... },
  new MainLand { ... },
  new MainLand { ... },
  new MainLand { ... },
  new MainLand { ... },
};


Как альтернатива, можно создать список и вызвать у него метод ToArray()

Генератор перечисления:
public static IEnumerable<MainLand> GetCountryList(string id)
{
    yield return new MainLand { ... };
    yield return new MainLand { ... };
    yield return new MainLand { ... };
    yield return new MainLand { ... };
    yield return new MainLand { ... };
}


Еще можно просто создать список или массив - они оба являются перечислениями.

---

Или у вас проблема в обращении к базе данных? Но тогда и надо задавать вопрос про базу данных, а не про список.

Ну и совет: найдите хоть какой-нибудь учебник по C#! Вы же задаете сейчас вопрос, который в любом учебнике описан... Неужели задать вопрос и три дня ждать ответа проще, чем за эти три дня найти ответ в учебнике?
Ответ написан
Комментировать
Вот пример
Ответ написан
Комментировать
Первое наследуйте класс MainLand от IListSource,
Второе выделите ваш класс со страной как отдельный,
поместите класс в List
ваши поля как ид и name должны быть public и field;
например
public int GetId(){get{ return id;} private set;}
Ответ написан
sabolch
@sabolch Автор вопроса
Web devoloper
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы