Try this code:
//Do stuff for first element.
MessageBox.Show( "First element: " + MyStringArray.First( ) );
for( int i = 1; i < MyStringArray.Length - 1; i++ )
{
//Do stuff for middle elements.
MessageBox.Show( "Middle element: " + MyStringArray[i] );
}
//Do stuff for last element.
MessageBox.Show( "Last element: " + MyStringArray.Last( ) );
It assumes that the array is not empty.
An alternative for middle elements:
foreach( var s in MyStringArray.Skip( 1 ).Take( MyStringArray.Length - 2 ) )
{
//Do stuff for middle elements.
MessageBox.Show( "Middle element: " + s );
}
In case of modern C# in .NET 6:
foreach( var s in MyStringArray[1..^1] )
{
//Do stuff for middle elements.
MessageBox.Show( "Middle element: " + s );
}