C# 中除了 `foreach`,还有哪些方式遍历集合?
时间: 2025-01-01 16:39:11 浏览: 5
在 C# 中,除了 `foreach` 循环用于遍历集合之外,还有其他几种方式:
1. **For循环**:可以使用标准的 for 循环配合索引来访问集合中的元素。例如:
```csharp
int[] array = {1, 2, 3};
for (int i = 0; i < array.Length; i++)
Console.WriteLine(array[i]);
```
2. **Array indexer**:数组可以直接通过下标访问,也可以创建一个范围变量来逐个处理元素:
```csharp
string[] strings = {"A", "B", "C"};
foreach (string s in strings)
Console.WriteLine(s);
// 或者
for (int i = 0; i < strings.Length; i++)
Console.WriteLine(strings[i]);
```
3. **While循环**:如果需要基于特定条件来控制迭代,可以使用 while 循环结合递增或递减索引:
```csharp
List<int> list = new List<int>{1, 2, 3};
int index = 0;
while (index < list.Count)
{
Console.WriteLine(list[index]);
index++;
}
```
4. **LINQ查询**:在 .NET Framework 3.5 之后引入了 LINQ(Language Integrated Query),允许更高级别的查询语法:
```csharp
var numbers = new[] {1, 2, 3};
foreach (var number in numbers)
Console.WriteLine(number);
```
5. **yield return** 和 `IEnumerable<T>`:如果你需要生成序列而不是一次性获取所有元素,可以使用 `yield` 关键字创建一个枚举器:
```csharp
IEnumerable<int> generateSequence()
{
for (int i = 1; i <= 3; i++)
yield return i;
}
foreach (int num in generateSequence())
Console.WriteLine(num);
```
每种方法适用于不同的场景,选择合适的方式可以提高代码的可读性和效率。
阅读全文