微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在 C# 中使用一个 ForEach 语句迭代两个列表或数组

如何解决在 C# 中使用一个 ForEach 语句迭代两个列表或数组

这称为Zip操作,将在 .NET 4 中得到支持

这样,您就可以编写如下内容

var numbers = new [] { 1, 2, 3, 4 };
var words = new [] { "one", "two", "three", "four" };

var numbersAndWords = numbers.Zip(words, (n, w) => new { Number = n, Word = w });
foreach(var nw in numbersAndWords)
{
    Console.WriteLine(nw.Number + nw.Word);
}

作为具有命名字段的匿名类型的替代方案,您还可以通过使用 Tuple 及其静态 Tuple.Create 帮助器来节省大括号:

foreach (var nw in numbers.Zip(words, Tuple.Create)) 
{
    Console.WriteLine(nw.Item1 + nw.Item2);
}

解决方法

这只是为了一般知识:

如果我有两个,比如说 List ,并且我想用相同的 foreach 循环来迭代这两个,我们可以这样做吗?

编辑

只是为了澄清,我想这样做:

List<String> listA = new List<string> { "string","string" };
List<String> listB = new List<string> { "string","string" };

for(int i = 0; i < listA.Count; i++)
    listB[i] = listA[i];

但是有一个 foreach =)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。