我有
class Item
{
public string Id {get;set;}
}
和此代码
public void(List<string> sd)
{
List<Item> newitems = new List<Item>();
foreach(var item in sd)
{
newItems.Add(new Item { Id = item});
}
}
如果sd包含十个以上的项目,我应该创建新对象List<Item>
并使用11项中的值对其进行初始化。
做得好多少?
答案 0 :(得分:1)
您似乎想要从Item
列表中创建string
列表,您可以使用Select()
创建列表而不是foreach
。然后,您只需要split the list into sublists:
var allItems = sd.Select(id => new Item { Id = id });
var subLists = Split(allItems);
您可以使用Split()
method in this answer:
public static List<List<object>> Split(List<object> source)
{
return source
.Select((x, i) => new { Index = i, Value = x })
.GroupBy(x => x.Index / 10)
.Select(x => x.Select(v => v.Value).ToList())
.ToList();
}
答案 1 :(得分:0)
我是C ++程序员所以请原谅任何错误的语法,但是这里你可以使用currentList
的引用,这个引用随着每次填充时创建一个新列表而变化,使用{{ 1}} if
中的条件。
foreach
如果我的语法有误,请随时修改并更正我的答案。