Junior — Middle
90
Элементтердің түрін алдын ала білмей, коллекция үшін LastOrDefault әдісін қалай жүзеге асыруға болады?
AI-дан жауап
sobes.tech AI
Чтобы реализовать метод 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;
}
Таким образом, можно получить последний элемент без знания типа заранее.