Информация об изменениях

Сообщение Re[6]: offtop: сортировщики гномиков от 20.07.2022 13:42

Изменено 20.07.2022 14:23 Sinclair

Re[6]: offtop: сортировщики гномиков
Здравствуйте, syrompe, Вы писали:

S>>А для Average всё прекрасно ложится — делаете Average<int, long>(t).

S>мне бы хотелось таки int на входе, long в сумме и double на выходе.
Ну, если хочется, то почему нет?

public static TResult Average<T, TSum, TResult>(IEnumerable<T> values)
where T : INumber<T>
where TSum : INumber<TSum>
where TResult : INumber<TResult>

{
TSum sum = Sum<T, TSum>(values);
return TResult.CreateChecked(sum) / TResult.CreateChecked(values.Count());
}

Хотя при таких условиях проще уже написать необобщённую версию
Re[6]: offtop: сортировщики гномиков
Здравствуйте, syrompe, Вы писали:

S>>А для Average всё прекрасно ложится — делаете Average<int, long>(t).

S>мне бы хотелось таки int на входе, long в сумме и double на выходе.
Ну, если хочется, то почему нет?
public static TResult Average<T, TSum, TResult>(IEnumerable<T> values)
    where T : INumber<T>
    where TSum : INumber<TSum>
    where TResult : INumber<TResult>
 
{
    TSum sum = Sum<T, TSum>(values);
    return TResult.CreateChecked(sum) / TResult.CreateChecked(values.Count());
}

Хотя при таких условиях проще уже написать необобщённую версию