Přetypování   zodpovězená otázka

VB.NET, Architektura

Dobrý den,

Mám vytvořenou třídu (mojeTrida), která implementuje několik interface.

Pro příklad IAnalog, IDigital, IActor ...

V programu potřebuji kolekci list (of MojeTrida) přetipovat na list (Of IActor) nebo list (of Idigital) ...

Je nějaký jednodušší a rychlejší způsob, než ve funkci př:

Function GetIdigital(lst as list(of mojeTrida)) as list(of Idigital) provádět vytváření nového listu iDigital a přidávat do něho přetypované položky jednu po druhé ?

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Přetypovávat to není potřeba, protože MojeTrida implementuje IActor (a tudíž obě věci jsou vzájemně kompatibilní). Kromě For Each to jde pomocí extension metody v kombinaci s lambda funkcí:

Dim lst As New List(Of MojeTrida)
Dim lst2 = lst.ConvertAll(New Converter(Of MojeTrida, IActor) _
(Function(mt As MojeTrida) DirectCast(mt, IActor)))

nahlásit spamnahlásit spam 2 / 2 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:  
Heslo:  

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback