Сообщение быстрый ToEnumerable от 23.04.2015 11:43
Изменено 23.04.2015 11:46 tyomchick
Часто методы принимают IEnumerable, а передавать хочется всего один элемент.
Решил написать хелпер:
Наивным тестами выяснил, что он быстрее чем
(хоть и уступает по зажору памяти), и экономичнее по памяти чем:
(при почти идентичной производительности).
Есть ли более быстрый способ?
Решил написать хелпер:
public static IEnumerable<T> ToEnumerable<T>(this T value)
{
return new[] { value };
}
Наивным тестами выяснил, что он быстрее чем
yield return value;
(хоть и уступает по зажору памяти), и экономичнее по памяти чем:
return Enumerable.Repeat(value, 1);
(при почти идентичной производительности).
Есть ли более быстрый способ?
быстрый ToEnumerable
Часто методы принимают IEnumerable, а передавать хочется всего один элемент.
Решил написать хелпер:
Наивным тестами выяснил, что он быстрее чем
(хоть и уступает по зажору памяти), и экономичнее по памяти чем:
(при почти идентичной производительности).
Есть ли более быстрый способ?
PS:
На счет памяти есть сомнения. Мерил через:
, если мерить через
, то массив и по памяти самый экономичный.
Решил написать хелпер:
public static IEnumerable<T> ToEnumerable<T>(this T value)
{
return new[] { value };
}
Наивным тестами выяснил, что он быстрее чем
yield return value;
(хоть и уступает по зажору памяти), и экономичнее по памяти чем:
return Enumerable.Repeat(value, 1);
(при почти идентичной производительности).
Есть ли более быстрый способ?
PS:
На счет памяти есть сомнения. Мерил через:
GC.GetTotalMemory(false)
, если мерить через
Environment.WorkingSet
, то массив и по памяти самый экономичный.