Вот код, который эффективен, если у вас есть сотни или тысячи элементов:
List allItems = GetItems();
//Choose the correct loop here
if((x % 5) == 0 && (X >= 5))
{
for(int x = 0; x < allItems.Count; x = x + 5)
{
if(specialUserID != allItems[x].ID)
filteredItems.Add( allItems[x] );
if(specialUserID != allItems[x+1].ID)
filteredItems.Add( allItems[x+1] );
if(specialUserID != allItems[x+2].ID)
filteredItems.Add( allItems[x+2] );
if(specialUserID != allItems[x+3].ID)
filteredItems.Add( allItems[x+3] );
if(specialUserID != allItems[x+4].ID)
filteredItems.Add( allItems[x+4] );
}
}
Начните тестирование, если размер цикла делится на наибольшее число на наименьшее число. если вы хотите 10 операторов if в цикле, то проверьте, что размер списка больше десяти и делится на десять, а затем уменьшите его. Например, если у вас есть 99 элементов --- вы можете использовать 9 операторов if в цикле. Цикл будет повторяться 11 раз вместо 99 раз
операторы if, дешевые и быстрые