首页 > 后端开发 > C++ > 如何在C#foreach循环中获得当前迭代的索引?

如何在C#foreach循环中获得当前迭代的索引?

DDD
发布: 2025-01-27 18:06:11
原创
278 人浏览过

How Can I Get the Index of the Current Iteration in a C# Foreach Loop?

在 foreach 循环中使用迭代索引

在 foreach 循环中获取当前迭代的索引是一个常见的编程任务。虽然 C# 没有提供内置的解决方案,但它有一个独特的结构可以满足这个需求。

解决方案:利用 Select 和匿名对象

一种方法是利用 LINQ 的 Select 方法,它提供了一个重载,允许您指定一个函数,该函数将值和索引作为参数。通过在此函数中选择索引,您可以创建一个包含值和索引的匿名对象:

foreach (var item in Model.Select((value, i) => new { i, value }))
{
    var value = item.value;
    var index = item.i;
}
登录后复制

优化:使用 ValueTuple 和自动解构

如果您使用的是 C# 7.0 或更高版本,您可以使用 ValueTuple 而不是匿名对象来避免堆分配:

foreach (var item in Model.Select((value, i) => (value, i)))
{
    var value = item.value;
    var index = item.i;
}
登录后复制

此外,自动解构无需显式访问属性:

foreach (var (value, i) in Model.Select((value, i) => (value, i)))
{
    // 直接在此处访问 `value` 和 `i`。
}
登录后复制

通过结合这些结构,您可以轻松地在 C# 的 foreach 循环中检索当前迭代的索引,从而提高代码的精确性和灵活性。

以上是如何在C#foreach循环中获得当前迭代的索引?的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板