ElementAt 和 ElementAtOrDefault

ElementAt 将返回索引 n 的项目。如果 n 不在可枚举的范围内,则抛出一个 ArgumentOutOfRangeException

int[] numbers  = { 1, 2, 3, 4, 5 };
numbers.ElementAt(2);  // 3
numbers.ElementAt(10); // throws ArgumentOutOfRangeException

ElementAtOrDefault 将返回索引 n 的项目。如果 n 不在可枚举的范围内,则返回 default(T)

int[] numbers  = { 1, 2, 3, 4, 5 };
numbers.ElementAtOrDefault(2);  // 3
numbers.ElementAtOrDefault(10); // 0 = default(int)

当源是 IList<T> 时,ElementAtElementAtOrDefault 都被优化,并且在这些情况下将使用正常索引。

请注意,对于 ElementAt,如果提供的索引大于 IList<T> 的大小,则列表应该(但在技术上不保证)抛出 ArgumentOutOfRangeException