How do you get the index of the current iteration of a foreach loop?
The foreach
is for iterating over collections that implement IEnumerable
. It does this by calling GetEnumerator
on the collection, which will return an Enumerator
.
This Enumerator has a method and a property:
MoveNext()
Current
Current
returns the object that Enumerator is currently on, MoveNext
updates Current
to the next object.
The concept of an index is foreign to the concept of enumeration, and cannot be done.
Because of that, most collections are able to be traversed using an indexer and the for loop construct.
I greatly prefer using a for loop in this situation compared to tracking the index with a local variable.
Get current index from foreach loop
IEnumerable list = DataGridDetail.ItemsSource as IEnumerable;
List<string> lstFile = new List<string>();
int i = 0;
foreach (var row in list)
{
bool IsChecked = (bool)((CheckBox)DataGridDetail.Columns[0].GetCellContent(row)).IsChecked;
if (IsChecked)
{
MessageBox.show(i);
--Here i want to get the index or current row from the list
}
++i;
}
How to find the foreach index?
foreach($array as $key=>$value) {
// do stuff
}
$key
is the index of each $array
element
How do I get the index of an item inside of a ForEach loop?
You may go this way with an enumerated array:
struct TempView: View{
@State var quarters: [[Month]] = [[.init(name: "January", products: ["1", "2"]),.init(name: "February", products: ["1", "2"]),.init(name: "March", products: ["1", "2"])],
[.init(name: "April", products: ["1", "2"]), .init(name: "May", products: ["1", "2"]), .init(name: "June", products: ["1", "2"])]]
var body: some View {
ForEach (self.quarters.indices , id: \.self) { (index) in
VStack {
Spacer()
HStack {
Text("Q\(index)")
.font(.system(size: 40, weight: .black, design: .rounded))
Button("TestButton",action: {
self.quarters.append([.init(name: "January", products: ["1", "2"]),.init(name: "February", products: ["1", "2"]),.init(name: "March", products: ["1", "2"])])
})
}
Spacer()
}
}
}}
How do you get the index of the current iteration of a foreach loop?
The foreach
is for iterating over collections that implement IEnumerable
. It does this by calling GetEnumerator
on the collection, which will return an Enumerator
.
This Enumerator has a method and a property:
MoveNext()
Current
Current
returns the object that Enumerator is currently on, MoveNext
updates Current
to the next object.
The concept of an index is foreign to the concept of enumeration, and cannot be done.
Because of that, most collections are able to be traversed using an indexer and the for loop construct.
I greatly prefer using a for loop in this situation compared to tracking the index with a local variable.
Accessing the index in 'for' loops
Use the built-in function enumerate()
:
for idx, x in enumerate(xs):
print(idx, x)
It is non-pythonic to manually index via for i in range(len(xs)): x = xs[i]
or manually manage an additional state variable.
Check out PEP 279 for more.
Get index of array in foreach loop
You are referencing the array value as an array. That's why it is giving you $row['id']
You need to use $key
as that is the value of your current index in the $rows
array.
When you use foreach($rows as $key => $row)
this is what it is practically doing:
$rows
- input array to loop through$key
- key of your current location in the first dimensional array$row
- value of your current location in the first dimensional array
How to get index in C# foreach
You can initialize a local variable outside a foreach loop and increment it until last row. This will hold current row. e.g
int i=0;
foreach (DataRow row in dt.Rows)
{
xlWorkSheet.Cells[i, 1] = row["Id"].ToString();
i++;
}
Get the current index of a for each loop iterating an ArrayList
Just use a traditional for loop:
for (int i = 0; i < yourArrayList.size(); i ++) {
// i is the index
// yourArrayList.get(i) is the element
}
Related Topics
Parsing CSV Files in C#, With Header
Split List into Sublists With Linq
C# Difference Between == and Equals()
How to Make a Textbox That Only Accepts Numbers
An Async/Await Example That Causes a Deadlock
How to Do Impersonation in .Net
Asynchronously Wait For Task≪T≫ to Complete With Timeout
Join/Where With Linq and Lambda
How to Add Extension Methods to an Existing Static Class
The Type or Namespace Name Could Not Be Found
How to Post Messages to an Sta Thread Running a Message Pump