对于两个列表中的每个元素
本文关键字:元素 于两个 列表 | 更新日期: 2023-09-27 17:52:54
这是我的代码:
List<string> l1 = new List<string> { "a", "b", "c" };
List<string> l2 = new List<string> { "x", "y", "z" };
foreach (var item in l1)
{
item = MyFunction(item);
}
foreach (var item in l1)
{
item = MyFunction(item);
}
是否有一种方法可以在单个foreach语句中迭代这两个列表?
假设List
对象的类型相同,则可以使用Concat
。
foreach (var item in l1.Concat(l2))
{
item = MyFunction(item);
}
您可以使用Concat()函数:
foreach(var item in l1.Concat(l2))
item = MyFunction(item);
请注意,为基于enumerable的循环重新赋值计数器变量可能会导致与更改底层IEnumerable相关的异常。
可以这样写:
var mergedList = 11.Union(l2).ToList();
foreach (var item in mergedList)
{
item = MyFunction(item);
}
联合删除所有重复项。Concat()方法不需要。所以联合利华可能更受青睐。这取决于列表的组成