witam,
mam w C# słownik który wygląda jakoś tak:
var liczniki = new Dictionary<Char, Int32>();
program wczytuje jeden wyraz i dla jego kolejnych znaków dodaje +1 do wartości liczniki[znak], potem drugi który robi to samo tylko -1
moje pytanie jest następujące: jak napisać pętlę foreach która sprawdzi czy wartości dla wszystkich znaków są równe zero?
ktoś potrafi pomóc? poniżej cały kod sprawdzający czy słowo jest anagramem, brakuje ostatniej pętli :/
Func<String, string, Boolean> JestAnagramem = (napis1,napis2)=>
{
var liczniki = new Dictionary<Char, Int32>();
foreach (var znak in napis1)
{
if(Char.IsLetter(znak))
{
var litera = Char.ToLower(znak);
if (liczniki.ContainsKey(litera))
{
liczniki[litera] += 1;
}
else
{
liczniki[litera] = 1;
}
}
}
foreach (var znak in napis1)
{
if (Char.IsLetter(znak))
{
var litera = Char.ToLower(znak);
if (liczniki.ContainsKey(litera))
{
liczniki[litera] -= 1;
}
else
{
return false;
}
}
}
/*foreach( char znak in liczniki) //tak niestety nie wolno
{
if(liczniki[znak]!=0)
{
return false;
}
} return true;*/
};