Diskuze: Vrácení lsitu podle specifického typu
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.

Tvůrce

Zobrazeno 9 zpráv z 9.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
Sorry za překlepy !
Máme sítě, tak nesleduju pořádně co a jak píšu
Použít můžeš obojí, v linq dotazu bys jen hledal takové záznamy,
jejichž
.GetType() jsou shodné s typem, který chceš vytáhnout.
Mohl by jsi napsat jak by vypadal vlastní metoda přes generecitidu ? Takto
je něco málo špatně .. Díky
private List<T> ReturnType<T>()
{
var res = list.Where(x => x.GetType() == typeof(T));
return res.ToList();
}
Třeba takhle:
public static class ListExtension
{
public static List<TOut> ReturnType<T, TOut>(this List<T> list)
{
return list.Where(x => x.GetType() == typeof(TOut)).OfType<TOut>().ToList<TOut>();
}
}
a použití:
class Enemy : GameObject {...}
// list vsech objektu
List<GameObject> objekty = ...
...
// vrati z listu vsech objektu jen enemace
List<Enemy> nepratele = objekty.ReturnType<GameObject, Enemy>();
Super ! Btw není T
zbytečné ? Nestačí jenom TOut ?
T se v LINQ používá střídměji - mnohem více IEnumerable. Proč tedy vracet List? (Pokud bude chtít aplikovat opět LINQ, bude zase přetypovávat.)
Puvodne jsem nad tim uvazoval, ze bych vracel jen IEnumerable, ale pak jsem si rek, ze kdyz chce list, budu vracet list, upravit si to uz muze podle potreb.
Zobrazeno 9 zpráv z 9.