通过数组中的C#中的成员变量迭代(foreach)[重复]

Posted

技术标签:

【中文标题】通过数组中的C#中的成员变量迭代(foreach)[重复]【英文标题】:Iterate(foreach) through member variable in C# in an array [duplicate] 【发布时间】:2021-05-20 11:55:56 【问题描述】:

是否可以不使用 temp 直接访问 foreach 标头中的变量 i?

class A

    public int iget; set;

...
A[] many_As=new A[1000]

foreach (var element in many_As)

    int temp=element.i;
    ...

...

->

foreach (int element in many_As.i)

   //doing something with element
   ...

【问题讨论】:

【参考方案1】:

你可以使用System.Linq:

...

using System.Linq;

...


foreach(var element in many_As.Select(x = >x.i)) 

    //do something

【讨论】:

【参考方案2】:

从 C# 7 开始,您可以执行以下操作:

foreach (var (value, index) in collection.Select((val, idx)=>(val, idx))) 
    Console.WriteLine($"index + 1th item is: value");

这里我们使用ValueTuple和tuple deconstruction。

【讨论】:

以上是关于通过数组中的C#中的成员变量迭代(foreach)[重复]的主要内容,如果未能解决你的问题,请参考以下文章

C#中的枚举器和迭代器

10 迭代器模式

C#迭代器实现

C#中foreach用法

Java中foreach为啥不能给数组赋值

可以通过 foreach 向后迭代吗?