Сообщение Re[6]: Множественное использование IEnumerable от 16.08.2020 5:09
Изменено 16.08.2020 5:33 _NN_
Re[6]: Множественное использование IEnumerable
Здравствуйте, VladCore, Вы писали:
VC>Ну вы даете. Есть параметризированные тесты. И тесты, если завтра захочется паралельно запускать в рандомном порядке, то что будете делать?
Это мне не поможет.
Мне нужно на каждый GetEnumerator вернуть другую последовательность.
VC>Maintainability в общем ниже плинтуса — через три месяца ничего не поймешь что за треш написал три месяца назад
Альтернатива это добавить перегрузку для IEnumerable<IEnumerable>.
Вот и вопрос а нужно ли это усложнение.
VC>Ну вы даете. Есть параметризированные тесты. И тесты, если завтра захочется паралельно запускать в рандомном порядке, то что будете делать?
Это мне не поможет.
Мне нужно на каждый GetEnumerator вернуть другую последовательность.
VC>Maintainability в общем ниже плинтуса — через три месяца ничего не поймешь что за треш написал три месяца назад
Альтернатива это добавить перегрузку для IEnumerable<IEnumerable>.
class A
{
IEnumerable<IEnumerable<int>> ints;
public A(IEnumerable<IEnumerable<int>> ints) => _ints=ints;
public A(IEnumerable<int> ints) : this(new[] { ints }) {}
public B CreateB() => new B(getFirstSequenceAndAdvanceToNextSequence());
IEnumerable<int> getFirstSequenceAndAdvanceToNextSequence()
{
var res = _ints.First();
_ints = _ints.Skip(1);
return res;
}
}
class B
{
public B(IEnumerable<int> ints)
{
foreach (int i in ints) { Console.WriteLine(i); }
}
}
Вот и вопрос а нужно ли это усложнение.
Re[6]: Множественное использование IEnumerable
Здравствуйте, VladCore, Вы писали:
VC>Ну вы даете. Есть параметризированные тесты. И тесты, если завтра захочется паралельно запускать в рандомном порядке, то что будете делать?
Это мне не поможет.
Мне нужно на каждый GetEnumerator вернуть другую последовательность.
VC>Maintainability в общем ниже плинтуса — через три месяца ничего не поймешь что за треш написал три месяца назад
Альтернатива это добавить перегрузку для IEnumerable<IEnumerable>.
Вот и вопрос а нужно ли это усложнение.
VC>Ну вы даете. Есть параметризированные тесты. И тесты, если завтра захочется паралельно запускать в рандомном порядке, то что будете делать?
Это мне не поможет.
Мне нужно на каждый GetEnumerator вернуть другую последовательность.
VC>Maintainability в общем ниже плинтуса — через три месяца ничего не поймешь что за треш написал три месяца назад
Альтернатива это добавить перегрузку для IEnumerable<IEnumerable>.
static class EnumerableUtils
{
static IEnumerable<T> GetFirstSequenceAndAdvanceToNextSequence<T>(ref IEnumerable<IEnumerable<T>> source)
{
var res = source.First();
source = source.Skip(1);
return res;
}
}
class A
{
IEnumerable<IEnumerable<int>> ints;
public A(IEnumerable<IEnumerable<int>> ints) => _ints=ints;
public A(IEnumerable<int> ints) : this(new[] { ints }) {}
public B CreateB() => new B(GetFirstSequenceAndAdvanceToNextSequence(ref _ints));
}
class B
{
public B(IEnumerable<int> ints)
{
foreach (int i in ints) { Console.WriteLine(i); }
}
}
Вот и вопрос а нужно ли это усложнение.