3

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

我之前问过,我学会了一种用 .AddRange(...) 填充列表的巧妙方法,但现在我意识到我必须让属性返回 IList,它似乎不支持 .AddRange 方法。

4

5 回答 5

9
public IList CategoryIDs
{
    get
    {
        return list.Split(',')
                .ToList<string>()
                .ConvertAll<int>(new Converter<string, int>(s => int.Parse(s)));
    }
}
于 2009-10-07T00:01:44.403 回答
1
// 任务
var ids = "1,2,3,4,5";
obj.CategoryIDs = ids.Split(',');
// 或者 - 如果你想要“添加”功能
obj.CategoryIDs = new ArrayList(ids.Split(','));

// 封装
IList 类别 ID
{
    得到 { 返回 ids.Split(','); }
}
于 2009-10-07T00:01:55.920 回答
0

您也可以重复使用 add :

var IDs = from s in commaSeparatedList.Split(',')
          select int.Parse(s);
foreach(var id in IDs)
    theIList.Add(id);
于 2009-10-07T00:02:24.767 回答
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));

    }

}
于 2009-10-07T00:07:13.067 回答
0

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

于 2009-10-06T23:59:10.140 回答