75人参与 • 2025-03-07 • Asp.net
实现方式:
在循环外部声明 index 变量,每次循环时手动递增:
int index = 0; foreach (var item in collection) { console.writeline($"{index}: {item}"); index++; }
特点:
实现方式:
通过 select 方法将元素与索引绑定为元组,结合 c# 7.0+ 的元组解构语法:
foreach (var (item, index) in collection.select((value, i) => (value, i))) { console.writeline($"{index}: {item}"); }
特点:
实现方式:
自定义扩展方法 withindex,增强代码复用性:
public static ienumerable<(t item, int index)> withindex(this ienumerable source) { return source.select((item, index) => (item, index)); } // 调用 foreach (var (item, index) in collection.withindex()) { console.writeline($"{index}: {item}"); }
特点:
实现方式:
调用集合的 indexof 方法直接获取元素索引(适用于 list 等支持索引查找的集合):
foreach (var item in collection) { int index = collection.indexof(item); console.writeline($"{index}: {item}"); }
特点:
性能与适用性
选择时需根据具体需求(如代码简洁性、性能要求、框架版本兼容性)综合考量。
到此这篇关于c# foreach获取循环索引的四种方法的文章就介绍到这了,更多相关c# foreach获取索引内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!
您想发表意见!!点此发布评论
版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。
发表评论