hotti: LINQ

Beitrag lesen

Hi,

danke. Was meinst du geanau. Ich muss aus x-Arrays zur Laufzeit eine Datenstruktur machen? Wie? Das kann man bestimmt auch mit LINQ erledigen können!

Ich kann Dir nur hier nur mal zeigen, wie ich das mit Perl machen würde. Zum aneinanderhängen der Arrays müssen die Referenzen aufgelöst werden, das macht der Klammerausdruck im Schleifenkopf. Aufsummiert wird über das Datum in jeweils einen Hash, die Arrays habe ich so umgeschrieben, dass Perl damit klarkommt.

  
use strict;  
use warnings;  
use Data::Dumper;  
  
my $a1 = [ ['1.1.2014', 123,55], ['2.1.2014', 223,15], ['3.1.2014', 653,55], ['4.1.2014', 673,01]];  
my $a2 = [ ['2.1.2014', 555,33], ['3.1.2014', 243,15], ['4.1.2014', 988,55], ['5.1.2014', 979,01]];  
my $a3 = [ ['1.1.2014', 443,55], ['3.1.2014', 323,15], ['4.1.2014', 853,55], ['5.1.2014', 756,01]];  
#            date        x   y  
  
  
my %res_x = ();  
my %res_y = ();  
foreach my $r (@$a1, @$a2, @$a3){  
    my $date = $r->[0];  
    my ($x,$y) = ($r->[1], $r->[2]);  
    $res_x{$date} += $x;  
    $res_y{$date} += $y;  
}  
  
print Dumper \%res_x, \%res_y;  
  
$VAR1 = {  
          '2.1.2014' => 778,  
          '5.1.2014' => 1735,  
          '3.1.2014' => 1219,  
          '1.1.2014' => 566,  
          '4.1.2014' => 2514  
        };  
$VAR2 = {  
          '2.1.2014' => 48,  
          '5.1.2014' => 2,  
          '3.1.2014' => 85,  
          '1.1.2014' => 110,  
          '4.1.2014' => 111  
        };  
  

Perl ist nicht LINQ, mich hat nur das Thema herausgefordert ;)