Avatar
Lako
Člen
Avatar
Lako:

Zdravím.
Jenom pro zkrášlení kódu se snažím dostat foreach do linq dotazu...
(value je typu object, leze mi to z konvertoru pro XAML, ale to je fuk..)

IList<DataPoint> dataPoints = new List<DataPoint>();
               IList<double> valueHistory = (List<double>) value;
               int i = 0;
               foreach (var val in valueHistory)
               {
                   DataPoint dataPoint = new DataPoint(i, val);
                   dataPoints.Add(dataPoint);
                   i++;
               }

Data point má v sobě proměnné typu X a Y (a ty přebírá konstruktorem), chci aby se X zvyšovalo o jednu (proto proměnná "i")...
ReSharper mi pomůže jen částečně, má právě problém s tou postupnou inkrementací:

IList<DataPoint> dataPoints = new List<DataPoint>();
               IList<double> valueHistory = (List<double>) value;
               int i = 0;
               foreach (DataPoint dataPoint in valueHistory.Select(val => new DataPoint(i, val)))
               {
                   dataPoints.Add(dataPoint);
                   i++;
               }

Jak tedy dostat do LINQ dotazu i to zvyšování o jedničku?

Díky díky.

Editováno 14.3.2014 10:19
 
Odpovědět 14.3.2014 10:17
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Lako
David Čápka:

IMHO by mělo jít:

int i = 0;
List<DataPoint> dataPoints = ((List<double>) value).Select(val => new DataPoint(i++, val))).ToList();

Ale nezkoušel jsem to.

Nahoru Odpovědět  +1 14.3.2014 10:23
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Lako
Člen
Avatar
Odpovídá na David Čápka
Lako:

Jak jednoduché.
Díky

 
Nahoru Odpovědět 14.3.2014 10:32
Avatar
Petr Nymsa
Redaktor
Avatar
Odpovídá na Lako
Petr Nymsa:

Přijde mě zase všude cpát LINQ jako horší řešení než foreach na 4 řádky :)

Nahoru Odpovědět 14.3.2014 10:45
Pokrok nezastavíš, neusni a jdi s ním vpřed
Avatar
Lako
Člen
Avatar
Odpovídá na Petr Nymsa
Lako:

Jo, tady to není zrovna moc elegantní, pravda..

 
Nahoru Odpovědět 14.3.2014 12:03
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 5 zpráv z 5.