Изменение списка в функции в C#
Параметр List<int> ссылается на тот же список. Метод Add внутри функции удлиняет список, и вызывающий код видит новый элемент:
Запишем функцию, которая дописывает число в конец списка, и выведем последний элемент после вызова:
void AppendTail(List<int> nums)
{
nums.Add(99);
}
List<int> data = [1, 2];
AppendTail(data);
Console.WriteLine(data[data.Count - 1]); // prints 99
Если параметру присвоить новый список, внешняя переменная останется прежней:
void Replace(List<int> nums)
{
nums = [7, 8];
}
List<int> data = [1, 2];
Replace(data);
Console.WriteLine(data.Count); // prints 2
Исправьте код так, чтобы новый элемент был виден снаружи функции:
void AddZero(List<int> nums)
{
nums = [4, 5, 0];
}
List<int> data = [4, 5];
AddZero(data);
Console.WriteLine(data[data.Count - 1]);
Исправьте код так, чтобы новый элемент был виден снаружи функции:
void PushTag(List<string> tags)
{
tags = ["a", "b", "end"];
}
List<string> tags = ["a", "b"];
PushTag(tags);
Console.WriteLine(tags[tags.Count - 1]);