>訪問c#foreach loops中的迭代索引 >
循環經常在C#中使用,以透過集合進行迭代。 但是,在標準循環中直接存取迭代索引並不直接支援。 本文概述了實現這一目標的有效方法。
foreach
foreach
>利用LINQ進行索引存取
> linq's 方法提供了乾淨的解決方案。 正如伊恩·默瑟(Ian Mercer)在菲爾·哈克(Phil Haack)博客上的一篇文章中所示,這種方法允許檢索項目及其索引:
Select()
<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#foreach循環中獲取迭代索引?的詳細內容。更多資訊請關注PHP中文網其他相關文章!