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)
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...
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.
Kiitos, tuosta oli apua :D
Aihe on jo aika vanha, joten et voi enää vastata siihen.