Я написал этот метод:
Код: Выделить всё
IEnumerable GetCapturedTimeLapsesWithRatios(IEnumerable allTimeLapsesProfitabilitiesResult, int from, int to)
{
foreach (var item in allTimeLapsesProfitabilitiesResult)
{
if (item = to)
{
Console.WriteLine("if (item >= to) " + item);
yield return item;
yield break;
}
else
{
Console.WriteLine("else " + item);
yield return item;
break;
}
}
}
foreach (var item in allTimeLapsesProfitabilitiesResult)
{
if (item < to)
{
Console.WriteLine("if (item < to) " + item);
yield return item;
}
else
{
Console.WriteLine("else " + item);
yield return item;
yield break;
}
}
}
GetCapturedTimeLapsesWithRatios(new List() {0,1,2,3,4,5,6,7,8,9,10 }, 4, 8);
Код: Выделить всё
{ 5, 0, 1, 2, 3, 4, 5, 6, 7, 8 }
Код: Выделить всё
0
1
2
3
4
else 5
if (item < to) 0 // wrong line
if (item < to) 1 // wrong line
if (item < to) 2 // wrong line
if (item < to) 3 // wrong line
if (item < to) 4 // wrong line
if (item < to) 5 // wrong line
if (item < to) 6
if (item < to) 7
else 8
Итак, есть ли способ использовать foreach несколько раз (каждый foreach с разной фильтрацией) для одного и того же Ienumerable внутри метода с доходностью? Или, может быть, я делаю это неправильно?
PS: приведенный выше код — пустышка, потому что мой реальный код более сложен, поэтому я не могу использовать только стандартные методы LINQ, такие как
Код: Выделить всё
new List() { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }.SkipWhile(i => i i
Подробнее здесь: [url]https://stackoverflow.com/questions/79337574/is-it-possible-to-use-foreach-on-the-same-ienumerable-twice-or-more-inside-a-m[/url]
Мобильная версия