it编程 > 编程语言 > Asp.net

C# foreach获取循环索引的四种方法

75人参与 2025-03-07 Asp.net

一、手动维护索引变量

‌实现方式‌:

在循环外部声明 index 变量,每次循环时手动递增:

int index = 0;
foreach (var item in collection)
{
console.writeline($"{index}: {item}");
index++;
}

‌特点‌:

二、linq select + 元组解构

‌实现方式‌:

通过 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 方法(需谨慎)

‌实现方式‌:

调用集合的 indexof 方法直接获取元素索引(适用于 list 等支持索引查找的集合):

foreach (var item in collection)
{
int index = collection.indexof(item);
console.writeline($"{index}: {item}");
}

特点‌:

性能与适用性‌

选择时需根据具体需求(如代码简洁性、性能要求、框架版本兼容性)综合考量。

到此这篇关于c# foreach获取循环索引的四种方法的文章就介绍到这了,更多相关c# foreach获取索引内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)

您想发表意见!!点此发布评论

推荐阅读

C#使用System.Net库实现自动发送邮件功能

03-07

10个被低估的C#性能优化技巧分享

03-07

C#实现在Excel中插入和操作切片器

03-07

CentOS系统上安装Conda的详细指南

03-07

C#实现软件防破解和防调试的几种有效措施

03-07

最新版Anaconda安装教程

03-07

猜你喜欢

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论