使用IList,如何通过逗号分隔的ID列表填充它

时间:2009-10-06 23:56:50

标签: c# ilist

我有一个属性IList CategoryIDs,以及一个包含逗号分隔列表的私有字符串变量,如何优雅地填充IList集合?

我问管理员,我学会了用.AddRange(...)填充List的简洁方法,但现在我意识到我必须让属性返回IList,它似乎不支持.AddRange方法。 / p>

5 个答案:

答案 0 :(得分:9)

public IList CategoryIDs
{
    get
    {
        return list.Split(',')
                .ToList<string>()
                .ConvertAll<int>(new Converter<string, int>(s => int.Parse(s)));
    }
}

答案 1 :(得分:1)

// assignment
var ids = "1,2,3,4,5";
obj.CategoryIDs = ids.Split(',');
// or - if you want "add" capabilities
obj.CategoryIDs = new ArrayList(ids.Split(','));

// encapsulation
IList CategoryIDs 
{
    get { return ids.Split(','); }
}

答案 2 :(得分:0)

只需创建一个新列表,使用您需要的方法,然后返回List。由于List实现了IList,因此它对该属性有效。

答案 3 :(得分:0)

您也可以重复使用添加:

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

答案 4 :(得分:0)

试试这个:

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));

    }

}