Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: C#: Arvojen käsittely virtana

AtskaFin [15.03.2019 18:19:09]

#

Javassa tietoa voi käsitellä virtana seuraavalla tavalla:

long kolmellaJaollistenLkm = syotteet.stream()
    .mapToInt(s -> Integer.valueOf(s))
    .filter(luku -> luku % 3 == 0)
    .count();

Sain kyllä tehtyä komennon joka tekee saman:

int kolmellaJaollistenLkm = taulukko.Sum(x => x % 3 == 0 ? 1 : 0);

Mutta miten c#:ssa käsitellään tietoa "virtana"?

ArrayList<Integer> luvut = lista.stream()
    .filter(luku -> luku > 5)
    .map(luku -> luku * 2)
    .collect(Collectors.toCollection(ArrayList::new));

No miten teen tämän -||- c#:lla niin, että se lisää aina kahdella kerrottuna x:n listaan? Sain seuraavaa aikaan, mutta se ei kerro kahdella:

List<int> positiiviset = lista.Where(x => x > 5).ToList();

(Java esimerkit: mooc 2019)

jalski [15.03.2019 20:56:59]

#

AtskaFin kirjoitti:

No miten teen tämän -||- c#:lla niin, että se lisää aina kahdella kerrottuna x:n listaan? Sain seuraavaa aikaan, mutta se ei kerro kahdella:

List<int> positiiviset = lista.Where(x => x > 5).ToList();

Select metodi ja lambda?

C# gurut varmaan kertovat paremmin...

Grez [15.03.2019 22:35:55]

#

AtskaFin kirjoitti:

No miten teen tämän -||- c#:lla niin, että se lisää aina kahdella kerrottuna x:n listaan? Sain seuraavaa aikaan, mutta se ei kerro kahdella:

List<int> positiiviset = lista.Where(x => x > 5).ToList();
var positiiviset = lista.Where(x => x > 5).Select(x => x * 2).ToList();

Voisi myös tehdä LinQ-tyylilä

var positiiviset = (from x in lista where x > 5 select x * 2).ToList();

Ja toki tuon var tilalle voi laittaa tuon List<int> mutta täsmälleen sama lopputulos tulee tuolla var:lla, kääntäjä vaan tekee osan työstä puolestasi. List<int> on myös toki lyhyt kirjoittaa, mutta jos se olisi vaikka Dictionary<string, List<JokuNamespace.EräsLuokka>> niin johan siinä käsi väsyy.

AtskaFin [15.03.2019 22:38:02]

#

Kiitos, tuosta oli apua :D

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta