Запутался, как настроить мой класс, не хочу выставлять разделенный запятыми список, только коллекцию - PullRequest
1 голос
/ 07 октября 2009

Итак, в моей базе данных есть столбец, который представляет собой разделенный запятыми список идентификаторов категорий, например:

"1,234,234,23,343,53"

Мой класс будет иметь свойство List, которое будет отображать эти идентификаторы в форме коллекции.

Если кто-то хочет добавить CategoryID, он просто делает:

myList.Add (234);

НО, когда пришло время сохранить в базе данных, мне придется преобразовать коллекцию обратно в список через запятую.

Каков наилучший способ сделать это? я должен сделать разделенный запятыми список целых чисел закрытым?

Ответы [ 3 ]

3 голосов
/ 07 октября 2009

Я бы разрешил доступ только одним способом. Это чище и предотвращает ошибки. Так что да, сделайте список целых чисел закрытым.

На самом деле, нет списка целых чисел. Иметь коллекцию целых чисел и преобразовывать их в строку только при обратной записи в базу данных. Если необходимо, переопределите метод collection .toString (), чтобы предоставить список целых чисел в виде списка через запятую. Это было то, что вы можете легко получить свой список, но люди не могут его использовать.

2 голосов
/ 07 октября 2009

Что-то подобное должно делать то, что вы ищете:

public class SomeClass
{
    public List<int> CategoryIDList { get; private set; }

    public void UpdateToDatabase()
    {
        string categoryIdList = ConvertIntListToString(this.CategoryIDList);
        // TODO Update Database.
    }

    private static string ConvertIntListToString(List<int> intList)
    {
        return string.Join(",", intList.Cast<string>().ToArray());
    }
}
0 голосов
/ 07 октября 2009

Это действительно зависит от цели занятия.

Если класс предназначен только для хранения идентификаторов, вы можете посмотреть на наследование от List и добавить методы для чтения из базы данных и сохранения в базе данных.

Если класс содержит больше информации, чем просто идентификаторы, тогда лучшим вариантом будет личный список.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...