首頁 > 後端開發 > C++ > 如何在 C# 中同時迭代兩個列表?

如何在 C# 中同時迭代兩個列表?

Susan Sarandon
發布: 2024-12-31 13:13:17
原創
1000 人瀏覽過

How Can I Iterate Through Two Lists Simultaneously in C#?

使用C# 的ForEach 同時迭代兩個列表或數組

在C# 中,可以使用相同的方法同時迭代多個列表或數組foreach 語句。這消除了對多種迭代方法的需求並簡化了流程。

使用 Zip 方法

如果您使用的是 .NET Framework 4.0 或更高版本,您可以利用內建的 Zip 方法。此方法對來自兩個指定序列的元素進行配對,從而產生配對序列。

例如,如果您有兩個列表,listA 和listB,則可以使用Zip 方法,如下所示:

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 });
登入後複製

此程式碼建立一系列匿名對象,其中每個對象都包含一個Number 屬性和一個Word 屬性。然後,您可以使用foreach 語句迭代此序列:

foreach(var nw in numbersAndWords)
{
    Console.WriteLine(nw.Number + nw.Word);
}
登入後複製

使用元組的替代方法

或者,您可以使用元組而不是建立匿名對象和Tuple.Create幫助器以保存大括號:

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

其他迭代選項

雖然Zip 方法提供了一種同時迭代兩個序列的簡潔方法,但還有其他選項。一種方法是使用雙for 循環:

for(int i = 0; i < listA.Count; i++)
    listB[i] = listA[i];
登入後複製

另一種方法是使用Parallel.ForEach:

Parallel.ForEach(numbers, number =>
{
    int index = Array.IndexOf(numbers, number);
    listB[index] = words[index];
});
登入後複製

選擇最佳迭代方法

最佳迭代方法將取決於您的特定要求和您所使用的.NET 版本使用。 Zip 方法高效且通用,而其他方法可能更適合遺留場景或基於索引分配值時。

以上是如何在 C# 中同時迭代兩個列表?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板