Pereiti prie turinio

c# common item'ai stringo masyve


Rekomenduojami pranešimai

Sveiki. Rašiau kodą ir iškilo šiokia tokia problema. Reikia rast stringo masyve daugiausia pasikartojantį stringo narį. Naudojau šį metodą:

            string name = array.GroupBy(v => v)   
          .OrderByDescending(g => g.Count())                                               
          .First()                  
          .Key;

Viskas puikiai veikia jeigu stringo duomenyse tik vienas item'as daugiausiai kartojasi, tarkim:

Jonas

Jonas

Jonas

Petras

Randa Joną ir viskas tvarkoj. Tačiau ką daryt jei duomenys tokie:

Jonas

Jonas

Petras

Petras

Juozas

Randa ir išveda tik vieną narį. Kaip pasidaryt kad išvestų visus narius, jei jie pasikartoja po vienodai?

Tas metodas nebetinka ir jį reik keist ar galima priderint jį?

Redagavo Friend
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Meta error'ą "Cannot implicitly convert type 'system.collections.generic.list<string> ' to 'string' "

 

Tikriausiai obvious klaidą padariau bet žalias dar c#, tai jei galit kas, apšvieskit :D

      string name = array.GroupBy(value => value)             
          .GroupBy(group => group.Count(), group => group.Key)          
          .OrderByDescending(anotherGroup => anotherGroup.Key)
          .First()       
          .ToList();

ties .ToList(); metą šitą errorą. Kiek suprantu kažkas čia su list, kurių pas mane nėra ar čia jau grybauju?

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Sveiki. Rašiau kodą ir iškilo šiokia tokia problema. Reikia rast stringo masyve daugiausia pasikartojantį stringo narį. Naudojau šį metodą:

            string name = array.GroupBy(v => v)   
          .OrderByDescending(g => g.Count())                                               
          .First()                  
          .Key;

Viskas puikiai veikia jeigu stringo duomenyse tik vienas item'as daugiausiai kartojasi, tarkim:

Jonas

Jonas

Jonas

Petras

Randa Joną ir viskas tvarkoj. Tačiau ką daryt jei duomenys tokie:

Jonas

Jonas

Petras

Petras

Juozas

Randa ir išveda tik vieną narį. Kaip pasidaryt kad išvestų visus narius, jei jie pasikartoja po vienodai?

Tas metodas nebetinka ir jį reik keist ar galima priderint jį?

 

Kartais labai praverčia let ir distinct ;)

 

   using System;
   using System.Collections.Generic;
   using System.Linq;

   class Program
   {
       static void Main(string[] args)
       {
           string[] names = {"Juozas", "Algis", "Rima", "Judita", "Berta", "Rytis", "Toma", "Petras" };
           List<String> longestNames = (from name in names let longest = names.Max(n => n.Length) where name.Length == longest select name).Distinct().ToList();
           longestNames.ForEach(Console.WriteLine);
           Console.ReadLine();
       }
   }

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Meta error'ą "Cannot implicitly convert type 'system.collections.generic.list<string> ' to 'string' "

 

Tikriausiai obvious klaidą padariau bet žalias dar c#, tai jei galit kas, apšvieskit :D

      string name = array.GroupBy(value => value)             
          .GroupBy(group => group.Count(), group => group.Key)          
          .OrderByDescending(anotherGroup => anotherGroup.Key)
          .First()       
          .ToList();

ties .ToList(); metą šitą errorą. Kiek suprantu kažkas čia su list, kurių pas mane nėra ar čia jau grybauju?

      string name = array.GroupBy(value => value)             
          .GroupBy(group => group.Count(), group => group.Key)          
          .OrderByDescending(anotherGroup => anotherGroup.Key)
          .First()       
          .ToList()
          .Aggregate((current, next) => current + ", " + next);

 

Siaip patarciau ne viska aklai kopijuot, ar aplamai net to linq nenaudot kai nelabai gaudaisi kas vyksta, kodel vyksta, kodel veikia, kodel neveikia. Pabandyk paprasciau, galbut "gremezdiskiau", bet tau paciam suprantamai issispresti problema.

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Prisijunkite prie diskusijos

Jūs galite rašyti dabar, o registruotis vėliau. Jeigu turite paskyrą, prisijunkite dabar, kad rašytumėte iš savo paskyros.

Svečias
Parašykite atsakymą...

×   Įdėta kaip raiškusis tekstas.   Atkurti formatavimą

  Only 75 emoji are allowed.

×   Nuorodos turinys įdėtas automatiškai.   Rodyti kaip įprastą nuorodą

×   Jūsų anksčiau įrašytas turinys buvo atkurtas.   Išvalyti redaktorių

×   You cannot paste images directly. Upload or insert images from URL.

Įkraunama...
  • Dabar naršo   0 narių

    Nei vienas registruotas narys šiuo metu nežiūri šio puslapio.

  • Prisijunk prie bendruomenės dabar!

    Uždarbis.lt nariai domisi verslo, IT ir asmeninio tobulėjimo temomis, kartu sprendžia problemas, dalinasi žiniomis ir idėjomis, sutinka būsimus verslo partnerius ir dalyvauja gyvuose susitikimuose.

    Užsiregistruok dabar ir galėsi:

    ✔️ Dalyvauti diskusijose;

    ✔️ Kurti naujas temas;

    ✔️ Rašyti atsakymus;

    ✔️ Vertinti kitų žmonių pranešimus;

    ✔️ Susisiekti su bet kuriuo nariu asmeniškai;

    ✔️ Naudotis tamsia dizaino versija;

    ir dar daugiau.

    Registracija trunka ~30 sek. ir yra visiškai nemokama.

  • Naujausios temos

  • Karštos temos

×
×
  • Pasirinkite naujai kuriamo turinio tipą...