Linq pobranie 2 wartosci ?

0

Mam w bazie taka tabelke ktora ma 3 wartosci,DokAutors to nazwa tabeli:
Imie:
jacek
romek
stachu

chce wyswietlic najpierw 1 wartosc co robie tak i dziala:

foreach (var i in doc.DokAutors)
            {
                sb.Append(i.Imie);
                break;
            } 

ale w jaki sposob wyswietlic tylko druga wartosc ?

0

Zeby wyswietlic druga wartosc probowalem tak,ale nie dziala:

 sb.Append(doc.DokAutors.Select(i => i).Take(2).Take(1).OrderByDescending(a=>a.IdDok));
0

To chyba powinno być mniej więcej tak:

 sb.Append(doc.DokAutors.Select(i => i).OrderByDescending(a=>a.IdDok).Skip(1).FristOrDefault());

Take bierze k pierwsze elementy, a Skip opuszcza k pierwszych elementów. Można o tym przeczytać w podpowiedzi InteliSense - polecam :P
EDIT:
To select jest tu chyba zbędne więc będzie tak:

 sb.Append(doc.DokAutors.OrderByDescending(a=>a.IdDok).Skip(1).FristOrDefault());
0

Niby podpowiada o Tobie cos zle podpowiedzial,bo to nie dziala.

0
newbie napisał(a)
foreach (var i in doc.DokAutors)
            {
                sb.Append(i.Imie);
                break;
            } 

Uruchomić pętlę po to, żeby ją przerwać po pierwszej iteracji. Padłem. :D :D :D

Dlaczego bierzesz się za coś, czego nie rozumiesz? Poczytaj książkę zanim weźmiesz się za programowanie.

0

W ksiazce nie wyczytam gotowych rozwiazan,dlatego pytam i probuje sam,takze jak nie masz nic ciekawego do powiedzenia to lepiej nie pisz nic.

0

Z książki mógłbyś się za to wreszcie dowiedzieć, co to są i do czego służą pętle. ;]

Coś ciekawego, to ja mógłbym powiedzieć, gdybyś w sensowny sposób swój problem przedstawił.
Nie możesz się po prostu odwołać po indeksie?

0
newbie napisał(a)

Niby podpowiada o Tobie cos zle podpowiedzial,bo to nie dziala.

Błąd kompilacji czy złe wyniki? Na takie coś zwykle odpowiadam "A u mnie działa" :P

0

No wlasnie po indeksie nie dziala i wyswietla mi nazwe klasy.metody itd.

0
newbie napisał(a)

No wlasnie po indeksie nie dziala i wyswietla mi nazwe klasy.metody itd.

Może tak?

doc.dokAutors[1].Imie

Wszedłem na wyższy poziom skill'a "cierpliwość" :D

0

Generalnie problem jest taki,ze dany id ma w danej kolukmnie 3 wartosci i chce w roznych miejscach w kodzie je wyswietlic np tutaj wartosc 1 a za 20 linijek wartosc 2 i gdzies tam 3. Zrobilem cos takiego:

 var result = doc.Tabelka1.Select(i => i).Take(3).Take(1).OrderByDescending(a => a.Id);
            foreach (var i in result)
            {
                sb.Append(i.Imie);
                
            }
            foreach (var i in result)
            {
                sb.Append(i.Nazwisko);               
                
            }
                sb.Append("</autor>");            
            sb.Append("<autor-sort>");
            foreach (var i in result)
            {
                sb.Append(i.NazwiskoImie);                
               
            }

No to niby jest ok ale co jesli w tej kolumnie bedzie 100 wartosci,to co wg tego bede musial sto takich linijek pisac:
var result = doc.DokAutors.Select(i => i).Take(3).Take(1).OrderByDescending(a => a.IdDokAutor);

No nie usmiecha mi sie ;D

Juz wiecie o co doklanie chodzi,pytanie do Pana Somekind?

ok doszedlem thx

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