Проблема в том, что в строке if(alObj.Contains("Somebody")){}
вы спрашиваете, содержит ли оригинал alObj
ArrayList
строку "Somebody". Ваш foreach
l oop должен быть переписан следующим образом:
foreach (string item1 in alObj)
{
if(item1 == "Somebody")
{
}
else if (item1 == "Nobody")
{
}
else
Console.WriteLine(item1);
}
Однако это можно улучшить еще больше, объединив дела «Кто-нибудь» и «Никто» в одно:
foreach (string item1 in alObj)
{
if(item1 == "Somebody" || item1 == "Nobody")
{
// Do nothing
}
else
Console.WriteLine(item1);
}
Наконец, это выглядит немного странно, реальное намерение кода - «Вывести элемент, только если он не равен« Некто »и не равен« Никто », то есть лучше всего выражается так:
foreach (string item1 in alObj)
{
if(item1 != "Somebody" && item1 != "Nobody")
Console.WriteLine(item1);
}