Junior — Middle
Əvvəlcədən elementlərin növünü bilmədən kolleksiya üçün LastOrDefault metodunu necə həyata keçirmək olar?
sobes.tech Süni İntellekt
AI-dan cavab
Чтобы реализовать метод LastOrDefault для коллекции, не зная заранее тип элементов, можно использовать обобщения (generics) и LINQ в C#.
Если коллекция реализует IEnumerable<T>, то можно написать универсальный метод:
public static T LastOrDefaultGeneric<T>(IEnumerable<T> source)
{
if (source == null) throw new ArgumentNullException(nameof(source));
T last = default;
bool foundAny = false;
foreach (var item in source)
{
last = item;
foundAny = true;
}
return foundAny ? last : default;
}
Этот метод перебирает все элементы и возвращает последний, либо значение по умолчанию, если коллекция пуста.
Если тип элементов неизвестен и коллекция не обобщённая (например, IEnumerable), то можно использовать object:
public static object LastOrDefaultNonGeneric(IEnumerable source)
{
if (source == null) throw new ArgumentNullException(nameof(source));
object last = null;
bool foundAny = false;
foreach (var item in source)
{
last = item;
foundAny = true;
}
return foundAny ? last : null;
}
Таким образом, можно получить последний элемент без знания типа заранее.