Przeszukiwanie zbioru

0

Cześć! Czy ktoś mógłby mi pomóc w następującej kwestii: mam zbiór zmiennych typu string, chciałbym przeszukać go pod kątem występowania dwa razy tej samej zmiennej. Jak mogę to zrobić?
Domyślam się że w rozwązaniu jest użyteczna pętla foreach ale nijak nie mogę tego zrobić.

0

Po pierwsze musisz uscislic - czy chodzi o te sama zmienna (patrz: referencje) czy tez zmienne, ktore maja takie same wartosci. Bo to pewna roznica :>

Poza tym - skoro masz ZBIOR - to z definicji elementy nie moga sie tam powtarzac :>

0

W czym przechowujesz te stringi?

edit:
Jeśli w List<>:

foreach (string s in lista)
{
    min = lista.IndexOf(s);
    max = lista.LastIndexOf(s);

    if (min == max)
        return false;
    else
        return true;
}
0

Nie prościej użyć Linq?

1

@somekind - chodzi ci o

(lst.Distinct().Count() == lst.Count)

czy jakieś zmyślniejsze rozwiązanie?

0

A samo Single by nie wystarczyło? ;)

0
foreach (string s in lista)
{
    min = lista.IndexOf(s);
    max = lista.LastIndexOf(s);

    if (min == max)
        return false;
    else
        return true;
}

Raz że nadmierna złożoność obliczeniowa, dwa że po pierwszym returnie funkcja się zakończy.

int ile=lista.Count;
for (int i=0;i<ile;i++)
  for (int j=i+1;j<ile;j++)
    if (lista[i]==lista[j])
      return false;
return true;

1 użytkowników online, w tym zalogowanych: 0, gości: 1