Notei algo interessante. Posso alterar os elementos do array ou atribuir uma nova referência de array em blocos foreach, mas não posso fazer as mesmas operações com coleções, dá erro. Por quê?? O exemplo a seguir dá erro
List<string> isimler = new List<string>() { "Ali", "Ayşe", "Fatma", "Mehmet" };
foreach (var (isim, index) in isimler.Select((isim, index) => (isim, index)))
{
isimler[index] += 10;
}
foreach(string isim in isimler)
{
Console.WriteLine(isim);
}
O exemplo a seguir não dá erro, está funcionando
string[] isimler = { "Ali", "Ayşe", "Fatma", "Mehmet" };
foreach (var (isim, index) in isimler.Select((isim, index) => (isim, index)))
{
isimler[index] += 10;
}
foreach(string isim in isimler)
{
Console.WriteLine(isim);
}