/ / Robiť viac vecí s výrazmi lambda v jednom riadku - lambda

Robiť viac vecí s lambda výrazmi v jednom riadku - lambda

Toto slúži iba na zjednodušenie a lepšiu čitateľnosť kódu.

Vytlačím si zoznam služieb Windows na svojom počítači. Pritom volám ServiceController.GetServices() a získať množstvo služieb. Ale najradšej by som to dostal do zoznamu so silným typom a vytlačil si ho do môjho textového poľa txbMain. Obe tieto veci sa mi podarilo v 3 riadkoch kódu. Existuje ale spôsob, ako vytlačiť na txbMain v prvom riadku, aby som sa mohol vyhnúť slučke foreach?

List<ServiceController> list = ServiceController.GetServices()
.OrderBy(x => x.DisplayName)
.ToList();

foreach (ServiceController sc in list)
txbMain.Text += sc.DisplayName + Environment.NewLine;

odpovede:

0 pre odpoveď č. 1

Ak po tomto vyhlásení zoznam nepoužívate, môžete:

ServiceController.GetServices()
.OrderBy(x => x.DisplayName)
.ToList()
.ForEach(x => txbMain.Text += x.DisplayName + Environment.NewLine);

Upozorňujeme, že aj tak interne vykoná foreach slučku.

Horšie je, že pred použitím metódy ForEach bude musieť najskôr vytvoriť zoznam, čo je časovo náročné.

vidieť Príspevok Erica Lipperta o tom.

Možno by ste sa mali držať predných slučiek.