if (list != null)
return list [index];
+#if NET_4_5
+ var readOnlyList = source as IReadOnlyList<TSource>;
+ if (readOnlyList != null)
+ return readOnlyList[index];
+#endif
+
return source.ElementAt (index, Fallback.Throw);
}
if (list != null)
return index < list.Count ? list [index] : default (TSource);
+#if NET_4_5
+ var readOnlyList = source as IReadOnlyList<TSource>;
+ if (readOnlyList != null)
+ return index < readOnlyList.Count ? readOnlyList [index] : default (TSource);
+#endif
+
return source.ElementAt (index, Fallback.Default);
}