C#教程

关注公众号 jb51net

关闭
首页 > 软件编程 > C#教程 > C# foreach获取索引

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

作者:NotOnlyCoding

在C#中使用foreach循环的时候我们有时会碰到需要索引的情况,在for循环中我们可以得到循环索引 , foreach并不直接提供 , 下面介绍4种foreach获取索引的方法,希望对大家有用处,需要的朋友可以参考下

一、手动维护索引变量

‌实现方式‌:

在循环外部声明 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获取索引内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文