首頁 >後端開發 >C++ >如何在C#foreach循環中獲取迭代索引?

如何在C#foreach循環中獲取迭代索引?

Susan Sarandon
Susan Sarandon原創
2025-01-27 18:13:091072瀏覽

How Do I Get the Iteration Index in a C# Foreach Loop?

>訪問c#foreach loops中的迭代索引 >

循環經常在C#中使用,以透過集合進行迭代。 但是,在標準循環中直接存取迭代索引並不直接支援。 本文概述了實現這一目標的有效方法。

foreachforeach>利用LINQ進行索引存取

> linq's 方法提供了乾淨的解決方案。 正如伊恩·默瑟(Ian Mercer)在菲爾·哈克(Phil Haack)博客上的一篇文章中所示,這種方法允許檢索項目及其索引:

Select()

方法的lambda表達式採用兩個參數:值及其索引(
<code class="language-csharp">foreach (var item in Model.Select((value, i) => new { i, value }))
{
    var value = item.value;
    var index = item.i;
}</code>
)。 創建了一個新的匿名物件來持有兩者。

> Select() i帶有valuetuple的效能增強(C#7.0及以後)

以提高性能,尤其是在較大的收藏中,

提供了一個更有效的替代方案:

這將

替換為匿名對象,減少開銷。 ValueTuple> 透過破壞性(C#7.0和更高版本)

<code class="language-csharp">foreach (var item in Model.Select((value, i) => (value, i)))
{
    var value = item.value;
    var index = item.i;
}</code>
提高了可讀性

進一步增強程式碼清晰度,破壞分配簡化了對索引和價值的存取:ValueTuple

這消除了對明確訪問的需求。 此方法結合了的效能優勢和改進的程式碼可讀性。 這些技術提供了有效,有效的方法來管理C#'s

循環中的迭代索引。

>

以上是如何在C#foreach循環中獲取迭代索引?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn