我有一个属性 IList CategoryIDs 和一个包含逗号分隔列表的私有字符串变量,如何优雅地填充 IList 集合?
我之前问过,我学会了一种用 .AddRange(...) 填充列表的巧妙方法,但现在我意识到我必须让属性返回 IList,它似乎不支持 .AddRange 方法。
public IList CategoryIDs
{
get
{
return list.Split(',')
.ToList<string>()
.ConvertAll<int>(new Converter<string, int>(s => int.Parse(s)));
}
}
// 任务 var ids = "1,2,3,4,5"; obj.CategoryIDs = ids.Split(','); // 或者 - 如果你想要“添加”功能 obj.CategoryIDs = new ArrayList(ids.Split(',')); // 封装 IList 类别 ID { 得到 { 返回 ids.Split(','); } }
您也可以重复使用 add :
var IDs = from s in commaSeparatedList.Split(',')
select int.Parse(s);
foreach(var id in IDs)
theIList.Add(id);
尝试这个:
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));
}
}
只需创建一个新列表,使用您需要的方法,然后返回该列表。由于 List 实现了 IList,因此它将对该属性有效。