Есть список коротких.Его значения не имеют значения, например:
List<short> resultTemp = new List<short>{1,2,3,4,5,6,7,8,9...};
Этот код должен уменьшить количество списка результатов, удалив из него каждый N-й элемент.
Пример 1:
List<short>{1,2,3,4,5,6,7,8,9,10}.Count == 10;
var targetItemsCount = 5;
результат должен быть {1,3,5,7,9}, а result.Count должен быть == 5
Пример 2:
List<short>{1,2,3,4,5,6,7,8,9}.Count == 9;
var targetItemsCo:nt = 3;
результат должен быть {1,4,7} и result.Count должно быть == 3
Но он должен прекратить его удаление, где-то для счетчика make result равным targetItemsCount (42 в этом коде, но его значение в другом случае не имеет значения).Код:
var currentItemsCount = resultTemp.Count;
var result = new List<short>();
var targetItemsCount = 42;
var counter = 0;
var counterResettable = 0;
if (targetItemsCount < currentItemsCount)
{
var reduceIndex = (double)currentItemsCount / targetItemsCount;
foreach (var item in resultTemp)
{
if (counterResettable < reduceIndex ||
result.Count + 1 == currentItemsCount - counter)
{
result.Add(item);
counterResettable++;
}
else
{
counterResettable = 0;
}
counter++;
}
}
И resault.Count в этом примере равно 41, но должно быть == targetItemsCount == 42;
Как мне удалить каждый элемент N в списке доList.Count больше, чем целевое значение с C #?