Алғашқы элементті SortedSet c #

Менде теңшелетін нысандардың SortedSet бар және SortedSet жинағынан First() функциясымен қабылдайтын бірінші элементті алып тастағым келеді . Мәселе мынада, бұл жұмыс істемейді және мен неге екенін білмеймін.

Кез келген көмек?

Менің түзету коды

URL u = Queue.First (); Кезек. Көшіріңіз (u);

мұнда URL - таңдамалы класс

2
@spender - Сұрыпталған жинақтарда тапсырыс бар.
қосылды автор Lee, көзі
Бұл жұмыс істемейді деген нені білдіреді? First кеңейтім әдісі анықтаманы шығаратындығын білесіз, бірақ элементтерді сандардан аластатпайды, дұрыс?
қосылды автор Renan, көзі
Сіз оны қалай жоюға тырысасыз? Бұл кодты жіберіңіз.
қосылды автор Yuck, көзі
Мәселе менің жеке сыныпта болды. Негізінен, IComparable-ді іске асырған кезде мен теңдікті ұмытып кеттім, сондықтан жоюдың өзі маған әсер етті ... бәрібір, болашақта менің сұрақтарымды жақсы түсіндіремін.
қосылды автор Bogdan Fichitiu, көзі
ОР проблемасы өзінің жеке классының жүзеге асуына байланысты. Мүмкін, оған қажетті ақпарат қажет (мен сияқты): stackoverflow.com/questions/24220369/…
қосылды автор silvalli, көзі
ОР проблемасы өзінің жеке классының жүзеге асуына байланысты. Мүмкін, оған қажетті ақпарат қажет (мен сияқты): stackoverflow.com/questions/24220369/…
қосылды автор silvalli, көзі

8 жауаптар

First() method works properly. But you'll remove the First() sorted item.

SortedSet set = new SortedSet();
set.Add("b");
set.Add("c");
set.Add("a");
Console.WriteLine(set.First());//Display 'A'
set.Remove(set.First());//Remove 'A'
Console.WriteLine(set.First());//Display 'B'
8
қосылды
Min едәуір тезірек болады - екеуі де logN ағашының түсуін жасайды, бірақ алдымен аралық санауышты бөледі.
қосылды автор Warty, көзі
Біріншіден, Мин.
қосылды автор Orace, көзі

Бұл өте қарапайым алға, мысалы:

SortedSet set = new SortedSet();
set.Add("Hi");
var f = set.First();
set.Remove(f);
6
қосылды
@BogdanFichitiu Осы қағида қолданылады. Егер сіз кодты жіберіп, «жұмыс істемейтін» тәсілін түсіндіріп берсеңіз, онда мәселені анықтау оңайырақ.
қосылды автор ThatBlairGuy, көзі
Менің кодым бірдей, бірақ мен басқа сыныпқа ие емеспін.
қосылды автор Bogdan Fichitiu, көзі

Бұл өте қарапайым алға, мысалы:

SortedSet set = new SortedSet();
set.Add("Hi");
var f = set.First();
set.Remove(f);
6
қосылды
@BogdanFichitiu Осы қағида қолданылады. Егер сіз кодты жіберіп, «жұмыс істемейтін» тәсілін түсіндіріп берсеңіз, онда мәселені анықтау оңайырақ.
қосылды автор ThatBlairGuy, көзі
Менің кодым бірдей, бірақ мен басқа сыныпқа ие емеспін.
қосылды автор Bogdan Fichitiu, көзі

You can use SortedSet.Remove Method және Enumerable.First Method

Removes a specified item from the SortedSet.

және

Бірізділіктің бірінші элементін қайтарады.

SortedSet s = new SortedSet();
...
s.Remove(s.First());
1
қосылды
1
қосылды

Алдымен() ештеңені алып тастамайды. Сіз оны стекке салып қоймайсыз. Егер сіз оны алғаннан кейін оны жойғыңыз келсе.

 var coll =....your sorted set
 var p = coll.First();
 coll.remove(p)
1
қосылды

Консольдік бағдарламаны қолданатын жұмыс үлгісі

    static void Main(string[] args)
    {
        SortedSet set = new SortedSet();
        set.Add("One");
        set.Add("Two");
        set.Add("Three");

        string first = set.First();
        set.Remove(first);

        foreach (var s in set)
        {
            Console.WriteLine(s);                
        }
        Console.ReadLine();
    }
0
қосылды

Элементті бірінші() деп шақыру арқылы жою мүмкін емес. Бірінші() кеңейту әдісі тек бірінші элементке сілтеме береді. Элементті жою үшін сізге жою <

0
қосылды
Джордж Джонстон бұрын айтқандарға жауап берді
қосылды автор Pankaj Agarwal, көзі