如果您只想要默认值(null、零等),那么您可以使用内置的ElementAtOrDefault
:
Console.WriteLine("{0}", arr.ElementAtOrDefault(5));
但是如果你想指定你自己的“默认”值(例如,6),那么你需要提供你自己的扩展方法来做到这一点:
Console.WriteLine("{0}", arr.ElementAtOrValue(5, 6));
public static class EnumerableExtensions
{
public static T ElementAtOrValue<T>(
this IEnumerable<T> source, int index, T defaultValue)
{
if (source == null) throw new ArgumentNullException("source");
if (index >= 0)
{
var list = source as IList<T>;
if (list != null)
{
if (index < list.Count) return list[index];
}
else
{
using (var enumerator = source.GetEnumerator())
{
while (enumerator.MoveNext())
{
if (index-- == 0) return enumerator.Current;
}
}
}
}
return defaultValue;
}
}