Я недавно начал использовать c #, переходя с Java. Я не могу найти, как получить элемент списка по индексу. В Java, чтобы получить первый элемент списка, это будет:
list1.get(0);
Что эквивалентно в C #?
Я недавно начал использовать c #, переходя с Java. Я не могу найти, как получить элемент списка по индексу. В Java, чтобы получить первый элемент списка, это будет:
list1.get(0);
Что эквивалентно в C #?
Ответы:
list1[0];
Предполагая, что для типа списка определен индексатор.
Вы можете использовать метод расширения ElementAt в списке.
Например:
// Get the first item from the list
using System.Linq;
var myList = new List<string>{ "Yes", "No", "Maybe"};
var firstItem = myList.ElementAt(0);
// Do something with firstItem
using System.Linq;
.
myList[0]
обозначениями?
.ElementAtOrDefault();
myCollectionWhichMightBeNull?.ElementAt(0)
или для защиты от несуществующего элемента:myCollection.ElementAtOrDefault(0)?.SomeProperty
Visual Basic, C # и C ++ имеют синтаксис для доступа к свойству Item без использования его имени. Вместо этого переменная, содержащая список, используется как массив.
List[index]
См. Например: https://msdn.microsoft.com/en-us/library/0ebtbkkc(v=vs.110).aspx
Старый вопрос, но я вижу, что эта тема была относительно недавно активна, поэтому я добавлю два моих цента:
В значительной степени именно то, что сказал Митч. При условии правильной индексации вы можете просто использовать обозначения в квадратных скобках, как если бы вы обращались к массиву. Однако, в дополнение к использованию числового индекса, если у ваших участников есть определенные имена, вы часто можете выполнять вид одновременного поиска / доступа, набрав что-то вроде:
var temp = list1["DesiredMember"];
Чем больше ты знаешь, верно?
List
Структура данных .NET находится Array
в «изменяемой оболочке».
Таким образом, вы можете использовать индексы для доступа к его элементам, таким как:
var firstElement = myList[0];
var secondElement = myList[1];
Начиная с C # 8.0 вы можете использовать Index
и Range
классы для доступа к элементам. Они обеспечивают доступ с конца последовательности или просто доступ к определенной части последовательности:
var lastElement = myList[^1]; // Using Index
var fiveElements = myList[2..7]; // Using Range, note that 7 is exclusive
Вы можете комбинировать индексы и диапазоны вместе:
var elementsFromThirdToEnd = myList[2..^0]; // Index and Range together
Также вы можете использовать ElementAt
метод LINQ, но в 99% случаев это действительно не нужно, а просто решение с низкой производительностью.