IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
matesax
Tvůrce
Avatar
matesax:3.7.2012 17:23

Dobrý den,
neznáte elegantnější způsob odstranění řádku z pole? Moje řešení:

 var k = new System.Collections.Generic.List<string>(this.vety);
k.Remove("");
this.vety = k.ToArray();

Asi nemusím vysvětlovat co co je.

 
Odpovědět
3.7.2012 17:23
Avatar
Kit
Tvůrce
Avatar
Kit:3.7.2012 17:36

Koukám, že seznamu říkáš pole. Zkus mu říkat seznam.

C# sice neznám, ale napadá mě

System.Collections.Generic.List<string>.Remove(this.vety);

Kdyby to nebylo ono, tak zkus tohle:
http://www.dotnetperls.com/list-remove
http://www.dotnetperls.com/removeall

Nahoru Odpovědět
3.7.2012 17:36
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Kit
Tvůrce
Avatar
Odpovídá na Kit
Kit:3.7.2012 17:41

Koukám, že ten můj první nápad je asi blbě. Zkusím druhý chybný:

this.vety.Remove("");

Trochu mi uniká, proč převádíš pole na seznam a naopak. Proč nemáš objekt this.vety typu seznam?

Nahoru Odpovědět
3.7.2012 17:41
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Kit
Tvůrce
Avatar
Odpovídá na Kit
Kit:3.7.2012 18:04

A zkusím do třetice:

this.vety.RemoveAll(item => item == "");

Ještě by to mělo jít metodou Where:
http://www.dotnetperls.com/where

Nahoru Odpovědět
3.7.2012 18:04
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
matesax
Tvůrce
Avatar
Odpovídá na Kit
matesax:3.7.2012 18:25

Ne - nepletu si seznam a pole. Přes where je to cyklus - to není elegantnější,... A to

this.vety.RemoveAll(item => item == "");

nejde,... Minimálně to nebere RemoveAll.

 
Nahoru Odpovědět
3.7.2012 18:25
Avatar
matesax
Tvůrce
Avatar
Odpovídá na Kit
matesax:3.7.2012 18:28

Ano - nejjednoduší by bylo, kdybych to mohl používat jako List - ale využívám tam pak Metody, které fungují jen pro pole,... Pole nemá žádnou funkci remove, replace, či tak. Proto to dělám přes list, kde to jde,...

 
Nahoru Odpovědět
3.7.2012 18:28
Avatar
Kit
Tvůrce
Avatar
Odpovídá na matesax
Kit:3.7.2012 18:29

Jaký cyklus? Psal jsem o metodě Where(). Podíval ses vůbec na ten odkaz? Tam žádný cyklus není.

Nahoru Odpovědět
3.7.2012 18:29
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Kit
Tvůrce
Avatar
Odpovídá na matesax
Kit:3.7.2012 18:33

Podle názvu this.vety se nejedná o pole, ale o seznam vět. Pokud na to aplikuješ metody, které pracují jen s polem, děláš to asi chybně.

Nahoru Odpovědět
3.7.2012 18:33
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
matesax
Tvůrce
Avatar
Odpovídá na Kit
matesax:3.7.2012 18:35

Co je špatného na Regex.Split()?

 
Nahoru Odpovědět
3.7.2012 18:35
Avatar
Kit
Tvůrce
Avatar
Odpovídá na matesax
Kit:3.7.2012 18:40

Regex.Split()? Na ní nic špatného není. Jen ji evidentně špatně používáš.

Nahoru Odpovědět
3.7.2012 18:40
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na matesax
David Hartinger:4.7.2012 8:42

Na poli remove nebude již z podstaty, protože má pevnou velikost ;) Elegantní způsob neexistuje, pokud potřebuješ ze struktury mazat, nepoužívej pole.

Nahoru Odpovědět
4.7.2012 8:42
You are the greatest project you will ever work on.
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 11 zpráv z 11.