我想做那样的事情:
var listItems = new List<someType>;
items.Method(i=>listItems.enqueue(i));
我打赌这很简单。
答案 0 :(得分:4)
您的方案看起来很简单,您可以使用List.AddRange method:
listItems.AddRange(items);
如果您想知道,List<T>
有ForEach method,但IEnumerable<T>
不存在此类方法。您可以在Eric Lippert的博文中了解更多相关信息:"foreach" vs "ForEach"。因此,我建议您利用listItems
作为List<T>
并使用AddRange
方法,而不是将items
转换为List<T>
,只需使用{{ 1}}就可以了。
答案 1 :(得分:2)
您想要IList上的ForEach
,因此您需要items.ToList().ForEach(i => listItems.Add(i));
答案 2 :(得分:0)
我不确定,但我认为,你在询问列表减法。例如,您有两个列表list1
和list2
,并且您希望从list2
中减去list1
的项目。在这种情况下,您应该采取以下行动:
List<int> list1 = new List<int>();
List<int> list2 = new List<int>();
list1.Add(1);
list1.Add(2);
list1.Add(3);
list1.Add(4);
list1.Add(5);
list2.Add(2);
list2.Add(4);
List<int> list3 = list1.Where(i => list2.IndexOf(i) == -1).Select(i => i).ToList();