首頁 > 後端開發 > C++ > 如何訪問C#foreach循環中的當前迭代索引?

如何訪問C#foreach循環中的當前迭代索引?

Barbara Streisand
發布: 2025-01-27 18:01:10
原創
494 人瀏覽過

How Can I Access the Current Iteration Index in a C# foreach Loop?

在 C# foreach 循環中檢索迭代索引

C# 的 foreach 迴圈本身並沒有提供對迭代索引的存取。 不過,我們可以巧妙地使用 LINQ 的 Select 方法來實現這一點。

Ian Mercer 的方法使用 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>
登入後複製

lambda 表達式 (value, i) => new { i, value } 建立一個匿名對象,其中包含項目 (value) 及其索引 (i)。

為了獲得更好的性能並避免不必要的堆分配(對於大型集合尤其有利),請考慮使用 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>
登入後複製

更簡潔的是,利用 C# 的解構功能,我們可以直接存取值和索引:

<code class="language-csharp">foreach (var (value, i) in Model.Select((value, i) => (value, i)))
{
    // Access `value` and `i` directly here.
}</code>
登入後複製

這些方法有效地允許您在使用 foreach 循環時取得當前迭代索引,從而在程式碼中提供更好的控制和靈活性。

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

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