/// <summary> /// returns item at <paramref name="index"/> in <paramref name="array"/> /// if <paramref name="index"/>.HasValue, null otherwise. /// </summary> /// <typeparam name="T"></typeparam> /// <param name="array"></param> /// <param name="index"></param> /// <returns> /// item at <paramref name="index"/> in <paramref name="array"/> /// if <paramref name="index"/>.HasValue /// else null /// </returns> public static T GetItemAtIndexOrNull <T>(this T[] array, int?index) where T : class { T itemAtIndex; if (index.HasValue) { int indexValue = index.GetValueOrDefault(); ListUtils.AssertItemIndexValid(indexValue, array, "index"); itemAtIndex = array[indexValue]; } else { itemAtIndex = null; } return(itemAtIndex); }