Используя IList, как заполнить его через список идентификаторов, разделенных запятыми

У меня есть свойство IList CategoryIDs и частная строковая переменная, содержащая список, разделенный запятыми, как элегантно заполнить коллекцию IList?

Я спросил Эрлера и узнал, как аккуратно заполнить список с помощью .AddRange (...), но теперь я понял, что мне нужно иметь свойство return IList, которое, похоже, не поддерживает метод .AddRange.


person mrblah    schedule 06.10.2009    source источник


Ответы (4)


Просто создайте новый список, используйте нужные вам методы и верните список. Поскольку List реализует IList, он будет действителен для этого свойства.

person Matt H    schedule 06.10.2009

Вы также можете просто повторно использовать add:

var IDs = from s in commaSeparatedList.Split(',')
          select int.Parse(s);
foreach(var id in IDs)
    theIList.Add(id);
person Reed Copsey    schedule 07.10.2009

Попробуй это:

public class Class1
{

    private String categoryIDList = "1,2,3";

    public Class1()
    {

        List<Int32> categoryList = new List<Int32>();

        String[] categoryIDs = categoryIDList.Split(",");

        foreach(String category in categoryIDs)
            categoryList.Add(Int32.Parse( category));

    }

}
person Joe Sweeney    schedule 07.10.2009

person    schedule
comment
Но мне нужен IList ‹int›, а не строки, поэтому .ToList ‹string› (); не сработает? - person mrblah; 07.10.2009