Anonymní profil Kartmen – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Anonymní profil Kartmen – Programujte.comAnonymní profil Kartmen – Programujte.com

 

Příspěvky odeslané z IP adresy 82.145.220.–

Kartmen
.NET › C# řazení pole struktur pře…
26. 12. 2018   #382656

#9 BDS
Díky, ten FindIndex vypadá jako to co hledám.

Kartmen
.NET › C# řazení pole struktur pře…
26. 12. 2018   #382655

Vrtam se v C# tak dva týdny, takže se to teprve učím. Většinu se snažím vygooglovat, ale když si nevím rady, tak otravuji tady. Ohledně toho co se tady teď řeší mi přišlo, že většina řešení spočívala v použití interface, nebo linq dotazu.

Zkusím tedy lépe popsat o co mi jde. Jsou dva různé objekty (např. třídy), které spolu nemusí nijak souviset. 

  class class1

  {
    public string jmeno;
    public int barva;
    public long ID;
    public double rychlost;
    public string[] popis;
    public int[] typ;
    //...
  }

  public class class2
  {
    public string jmeno;
    public uint pocet;
    public double plocha;
    public int barva;
    public double rychlost;
    public string[] popis;
    public long ID;
    public int[] typ;
    //...
  }

Já mam kolekce těchto tříd, jejichž volba typu je na mě (pole, List, nebo tak něco). Takže třeba

List<class1> clsL1;
List<class2> clsL2;

V každém listu je několik tisíc prvků a hledám shodu jedné, nebo více vlastností. Cyklem bych to udělal takto  

      foreach (class1 cls1 in clsL1)
      {
        foreach (class2 cls2 in clsL2)
        {
          if (cls1.jmeno == cls2.jmeno)
          {
            if (cls1.barva == cls2.barva)
            {
              if (cls1.ID == cls2.ID)
              {

              //...

              }
            }
          }
        }
      }

A hledám jak se toto běžně řeší, nejlépe způsob kde se píše co nejméně kódu. V tomto případě by se mi hodilo vrátit ke každému indexu listu clsL1 shodny index v listu clsL2 nebo třeba -1 pokud tam shodný prvek není.

 

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032022 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý