Forum » Programiranje » [c#] LinkedList branje poljubnega elementa
[c#] LinkedList branje poljubnega elementa
KernelPanic ::
Spostovani!
V LinkedList imam 10 elementov in sedaj imam zelo butastvo vprasanje, kako dobim iz LinkedList-a, naprimer, 3ji ali 5i element?
Iskal sem po googlu, vendar nisem nicesar nasel, z navadnim List-om znam delati, v osnovi je to eno in isto, samo, da je LinkedList dvojno povezan (ima pointer na prejsnjega in naslednjega).
Lp,
M.
V LinkedList imam 10 elementov in sedaj imam zelo butastvo vprasanje, kako dobim iz LinkedList-a, naprimer, 3ji ali 5i element?
Iskal sem po googlu, vendar nisem nicesar nasel, z navadnim List-om znam delati, v osnovi je to eno in isto, samo, da je LinkedList dvojno povezan (ima pointer na prejsnjega in naslednjega).
Lp,
M.
genesiss ::
Sprehodit se boš moral čez list. Ker je double-linked lahko malo optimiziraš in greš iskat s tiste strani, ki je bližja elementu (od zadaj ali od spredaj).
KernelPanic ::
LinkedList.ElementAt(3|5)? - http://msdn.microsoft.com/en-us/library...To sem videl, vendar ko probam skompajlat sledeco kodo:
public Advertisement currentAdvertisement { get { return this.m_listAdvertisements.ElementAt(this.m_iCurrentIndex); } }, dobim napako:
Error 1 'System.Collections.Generic.LinkedList<FrontOffice.Elements.Advertisement>' does not contain a definition for 'ElementAt' and no extension method 'ElementAt' accepting a first argument of type 'System.Collections.Generic.LinkedList<FrontOffice.Elements.Advertisement>' could be found (are you missing a using directive or an assembly reference?) D:\Projects\BarAdvetiser\FrontOffice\ViewModels\PresentationViewModel.cs 60 52 FrontOffice
KernelPanic ::
kako dobiš m_listAdvertisements in m_iCurrentIndexV istem classu (fajlu) je deklariran seznam:
#region Input Advertisements private LinkedList<Advertisement> _listAdvertisements; internal LinkedList<Advertisement> m_listAdvertisements { get { return _listAdvertisements; } private set { _listAdvertisements = value; } } #endregion Input Advertisementsin tudi m_iCurrentIndex:
#region Advertisement Index private long _iCurrentIndex = 0; public long m_iCurrentIndex { get { return _iCurrentIndex; } private set { if (this.m_iCurrentIndex != value) { this.m_iCurrentIndex = value; OnPropertyChanged("CurrentSlide"); OnPropertyChanged("CurrentIndex"); } } } #endregion Advertisement Index
FrEaKmAn ::
ElementAt sprejema int in ne long?
moj primer deluje brez problema
moj primer deluje brez problema
LinkedList<String> LinkedList = new LinkedList<String>(); LinkedList.AddFirst("Ana"); LinkedList.AddFirst("Banana"); MessageBox.Show(LinkedList.ElementAt<String>(0));
FrEaKmAn ::
celotna koda
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace TestsCSharp { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { LinkedList<String> LinkedList = new LinkedList<String>(); LinkedList.AddFirst("Ana"); LinkedList.AddFirst("Banana"); MessageBox.Show(LinkedList.ElementAt(0)); } } }
FrEaKmAn ::
manjka ti
samo če nisi nič brisal, bi ti moral to dodati avtomatsko. Občutek imam da je problem nekje drugje...
using System.Collections.Generic;
samo če nisi nič brisal, bi ti moral to dodati avtomatsko. Občutek imam da je problem nekje drugje...
Zgodovina sprememb…
- spremenil: FrEaKmAn ()
fiction ::
Fora je pomoje v tem, da ni bilo "using System.Linq". ElementAt() je namreč definirana kot extension metoda od IEnumerable(T), kar implementira tudi LinkedList(T)), ampak nahaja se pa "v System.Linq.Enumerable".
Je pa to O(n) metoda, ne tako kot index based dostop v List(T), ki je O(1).
Je pa to O(n) metoda, ne tako kot index based dostop v List(T), ki je O(1).
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | [C#] Razširitev Linked List-aOddelek: Programiranje | 1117 (783) | Ciklamen |
» | [c#] SkladOddelek: Programiranje | 1592 (1452) | Spura |
» | [c#] Ustvarjanje objekta v drugem razreduOddelek: Programiranje | 1667 (1612) | Cvenemir |
» | c sharp LinkedList - NalogaOddelek: Programiranje | 1862 (1813) | Msatir |
» | Povezani seznamOddelek: Programiranje | 2119 (1716) | pohano |