Ian Mercer posted a similar solution as this on Phil Haack’s blog:
foreach (var item in Model.Select((value, i) => new { i, value })) { var value = item.value; var index = item.i; }
This gets you the item (item.value
) and its index (item.i
) by using this overload of LINQ’s Select
:
the second parameter of the function [inside Select] represents the index of the source element.
The new { i, value }
is creating a new anonymous object.
Heap allocations can be avoided by using ValueTuple
if you’re using C# 7.0 or later:
foreach (var item in Model.Select((value, i) => ( value, i ))) { var value = item.value; var index = item.i; }
You can also eliminate the item.
by using automatic destructuring:
foreach (var (value, i) in Model.Select((value, i) => ( value, i ))) { // Access `value` and `i` directly here. }
Related Posts:
- How do I exit a foreach loop in C#?
- .Net 4.8 Support for Windows 10 ends in 26 days?
- What is a NullReferenceException, and how do I fix it?
- How can I convert String to Int?
- How to find child of a GameObject or the script attached to child GameObject via script
- Process cannot access the file because it is being used by another proess
- How to convert JSON to XML or XML to JSON?
- Virustotal Trapmine suspicious.low.ml.score
- What is the difference between declarative and imperative paradigm in programming?
- Group by in LINQ
- Convert int to string?
- Unity OnTriggerEnter2D not registering
- How to Sort a List
by a property in the object - The page was not displayed because the request entity is too large on IIS
- How to open .dll files to see what is written inside?
- how does Request.QueryString work?
- C# Java HashMap equivalent
- System.Net.Http: missing from namespace? (using .net 4.5)
- Windows .NET API / Windows 7 / Bluetooth communication with Intel Curie Arduino / Genuino 101
- WFP Grid: MouseRightButtonDown firing occuring BEFORE SelectionChanged on grid. Causing syncing issue
- Can’t add script component because the script class cannot be found?
- ‘do…while’ vs. ‘while’
- Visual Studio /**/ comment shortcut?
- Unable to resolve service for type while attempting to activate
- Extension methods must be defined in a non-generic static class
- Return multiple values to a method caller
- Regex that accepts only numbers (0-9) and NO characters
- Deserialize JSON with C#
- “Error while trying to run project: Unable to start program”. Can run program only once. Then VS needs restart
- How to resolve this System.IO.FileNotFoundException
- What is WebResource.axd?
- Associating enums with strings in C#
- Fire ontextchanged() event of an asp:TextBox via Javascript
- C# Gridview CheckBox Field VS (Template Field + CheckBox)
- Extension methods must be defined in a non-generic static class
- Convert char to int in C#
- The remote server returned an error: (403) Forbidden
- How do I encode and decode a base64 string?
- How to add a delay for a 2 or 3 seconds
- How to keep console window open
- Tree data structure in C#
- Multiple file-extensions searchPattern for System.IO.Directory.GetFiles
- calling javascript function on OnClientClick event of a Submit button
- C# – Illegal characters in path
- Getting The ASCII Value of a character in a C# string
- Process exists with ExitCode 255
- The data types text and varchar are incompatible in the equal to operator in C#
- Name does not exist in the current context
- Unable to read data from the transport connection : An existing connection was forcibly closed by the remote host
- The remote server returned an error: (407) Proxy Authentication Required
- IsNumeric function in c#
- The calling thread must be STA, because many UI components require this in WPF
- Error when Building Project: Error building Player because scripts have compile errors in the editor
- Unity3D. Trying to send command for object without authority
- Recommendation for C# Matrix Library
- The type initializer for ‘MyClass’ threw an exception
- Could not load file or assembly ‘Microsoft.Web.Infrastructure,
- Deep cloning objects
- Where to place native DLL to use Pocket PC emulator?
- Regular expression “^[a-zA-Z]” or “[^a-zA-Z]”
- .NET graph library around?
- Input string was not in a correct format
- There is no ViewData item of type ‘IEnumerable
‘ that has the key country - C# – Rounding Down to Nearest Integer
- How to update the value stored in Dictionary in C#?
- How to write a comment in a Razor view?
- Verify a method call using Moq
- Finalize vs Dispose
- XmlSerializer – There was an error reflecting type
- How to download a file from a URL in C#?
- Run Command Prompt Commands
- Cannot implicitly convert type ‘System.Collections.Generic.List< >‘ to ‘System.Collections.Generic.IList< >‘
- How can I wait for a thread to finish with .NET?
- How do I exit a WPF application programmatically?
- MailMessage.To.Add() throwing exception : “An invalid character was found in the mail header: ‘,’.”
- Remove duplicates from a List
in C# - How to deserialize xml to object [duplicate]
- OnCollisionEnter is not called in unity
- The name ‘ViewBag’ does not exist in the current context – Visual Studio 2015
- How can we prepend strings with StringBuilder?
- C# conditional operator error Only assignment, call, increment, decrement, await, and new object expressions can be used as a statement
- How to create a new object instance from a Type
- does not implement interface member
- Using FolderBrowserDialog in WPF application
- How to make Check Box List in ASP.Net MVC
- Is there an equivalent to the C# “var” keyword in C++/CLI?
- Differences between SFTP and “FTP over SSH”
- When should I use a List vs a LinkedList
- Remove punctuation from string with Regex
- Unity – How to stop Play Mode in case of infinite loop?
- The SMTP server requires a secure connection or the client was not authenticated. The server response was: 5.5.1 Authentication Required?
- Go To Definition: “Cannot navigate to the symbol under the caret.”
- Why am I getting an Exception with the message “Invalid setup on a non-virtual (overridable in VB) member…”?
- Is there a keyboard shortcut to maximize the Game window in Unity in Play Mode?
- IF Statement multiple conditions, same statement
- What is the easiest way to handle associative array in c#?
- What does the M stand for in C# Decimal literal notation?
- Iif equivalent in C#
- Convert an array to string
- is inaccessible due to its protection level