Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этом вводном руководстве приведены общие сведения о языке C# и основах класса.
В этом руководстве вы узнаете, как интерактивно использовать C# в браузере для написания кода C# и просмотреть результаты компиляции и выполнения кода. Он содержит ряд уроков, которые создают, изменяют и изучают коллекции и массивы. Вы работаете в первую очередь с классом List<T> .
Базовый пример списка
Подсказка
Если блок фрагмента кода включает кнопку "Выполнить", эта кнопка открывает интерактивное окно или заменяет существующий код в интерактивном окне. Если фрагмент не содержит кнопку "Выполнить", можно скопировать код и добавить его в текущее интерактивное окно.
Выполните следующий код в интерактивном окне. Замените <name>
на ваше имя и выберите Выполнить.
List<string> names = ["<name>", "Ana", "Felipe"];
foreach (var name in names)
{
Console.WriteLine($"Hello {name.ToUpper()}!");
}
Вы создали список строк, добавили в этот список три имени и напечатали все имена заглавными буквами. Вы используете концепции, которые вы изучили в предыдущих руководствах, чтобы перебирать список.
Код для отображения имен использует функцию интерполяции строк . Когда перед string
поставить символ $
, можно внедрить код на C# в строку. Фактическая строка заменяет код C# значением, которое он создает. В этом примере он заменяет каждое {name.ToUpper()}
имя, преобразованное в прописные буквы, так как вызывается String.ToUpper метод.
Давайте продолжаем изучать.
Изменение содержимого списка
Созданная коллекция использует List<T> тип. Этот тип сохраняет последовательности элементов. Вы указываете тип элементов между угловой скобкой.
Одним из важных аспектов этого List<T> типа является возможность увеличения или сжатия, что позволяет добавлять или удалять элементы. Вы можете увидеть результаты, изменив содержимое после его отображения. Добавьте следующий код после написанного кода (цикл, который печатает содержимое):
Console.WriteLine();
names.Add("Maria");
names.Add("Bill");
names.Remove("Ana");
foreach (var name in names)
{
Console.WriteLine($"Hello {name.ToUpper()}!");
}
Вы добавили еще два имени в конец списка. Вы также удалили один из них. Выходные данные из этого блока кода отображают начальное содержимое, а затем выводит пустую строку и новое содержимое.
List<T> позволяет ссылаться на отдельные элементы также по индексу. Доступ к элементам с помощью маркеров [
и ]
. Вставьте следующий код после написанного вами и протестируйте.
Console.WriteLine($"My name is {names[0]}.");
Console.WriteLine($"I've added {names[2]} and {names[3]} to the list.");
Вы не можете получить доступ к концу списка. Вы можете проверить длину списка, используя свойство Count. Добавьте следующий код:
Console.WriteLine($"The list has {names.Count} people in it");
Нажмите Выполнить повторно, чтобы увидеть результаты. В C#индексы начинаются с 0, поэтому самый большой допустимый индекс меньше числа элементов в списке.
Поиск и сортировка списков
Наши примеры используют относительно небольшие списки, но ваши приложения могут часто создавать списки с гораздо большим количеством элементов, иногда в количестве тысяч. Чтобы найти элементы в этих больших коллекциях, необходимо выполнить поиск по списку различных элементов. Метод IndexOf ищет элемент и возвращает индекс элемента. Если элемент отсутствует в списке, IndexOf
возвращается -1
. Попробуйте узнать, как это работает. Добавьте следующий код после того, как вы написали до сих пор:
var index = names.IndexOf("Felipe");
if (index == -1)
{
Console.WriteLine($"When an item is not found, IndexOf returns {index}");
}
else
{
Console.WriteLine($"The name {names[index]} is at index {index}");
}
index = names.IndexOf("Not Found");
if (index == -1)
{
Console.WriteLine($"When an item is not found, IndexOf returns {index}");
}
else
{
Console.WriteLine($"The name {names[index]} is at index {index}");
}
Возможно, вы не знаете, находится ли элемент в списке, поэтому всегда следует проверять индекс, возвращаемый IndexOf. Если -1
, то элемент не найден.
Элементы в списке также можно отсортировать. Метод Sort сортирует все элементы в списке в обычном порядке (в алфавитном порядке для строк). Добавьте этот код и снова выполните следующую команду:
names.Sort();
foreach (var name in names)
{
Console.WriteLine($"Hello {name.ToUpper()}!");
}
Списки других типов
Вы уже использовали string
тип в списках. Давайте сделаем List<T>, используя другой тип. Давайте создадим набор чисел. Удалите написанный код и замените его следующим кодом:
List<int> fibonacciNumbers = [1, 1];
Это создает список целых чисел и задает первые два целых числа значением 1. Последовательность Fibonacci, последовательность чисел, начинается с двух 1. Каждое следующее число Fibonacci найдено путем принятия суммы предыдущих двух чисел. Добавьте следующий код:
var previous = fibonacciNumbers[fibonacciNumbers.Count - 1];
var previous2 = fibonacciNumbers[fibonacciNumbers.Count - 2];
fibonacciNumbers.Add(previous + previous2);
foreach (var item in fibonacciNumbers)
{
Console.WriteLine(item);
}
Нажмите клавишу RUN , чтобы просмотреть результаты;
Вызов
Узнайте, можно ли объединить некоторые понятия из этого и более ранних уроков. Расширьте то, что вы сделали на данном этапе с числами Фибоначчи. Попробуйте написать код, чтобы создать первые 20 чисел в последовательности. (Как намек, 20-й номер Фибоначчи равен 6765.)
Ты придумала что-то вроде этого?
При каждой итерации цикла вы принимаете последние два целых числа в списке, суммируя их и добавляя это значение в список. Цикл повторяется до добавления в список 20 элементов.
Вы завершили интерактивное обучение по спискам, являющееся завершающим введением в интерактивные руководства по C#. Вы можете посетить сайт .NET, чтобы скачать пакет SDK для .NET , создать проект на компьютере и сохранить код. В разделе "Дальнейшие шаги" вы возвращаетесь к данным руководствам. Кроме того, вы можете продолжить изучение объектно-ориентированного программирования с помощью классов и объектов .
Дополнительные сведения о коллекциях .NET см. в следующих статьях: