2012-02-21 17 views
26

Ho un elenco che contiene FrameworkElements e voglio creare un metodo di estensione chiamato MoveToTop. Tutto ciò che accadrà è accettare un elemento che fa parte di quell'elenco e spostarlo all'inizio della lista. So che questo potrebbe essere realizzato senza l'uso di un metodo di estensione, ma mi piacerebbe che fosse implementato come metodo di estensione.Come creare il metodo di estensione sulla raccolta generica

Ho difficoltà a cercare di capire la sintassi per la creazione di un metodo di estensione che accetta un parametro generico. So che questo non è corretto, ma se qualcuno potesse darmi un'idea di come ottenere ciò, lo apprezzerei.

public static class Extensions 
{ 
    public static void MoveToTop(this ICollection<T> sequence) 
    { 
     //logic for moving the item goes here. 
    } 
} 
+0

Ulteriori informazioni sui metodi generici qui http://msdn.microsoft.com/en-us/library/twcad0zb%28v=vs.100%29.aspx :) – radbyx

risposta

49

Eri vicino, basta il <T> dopo il nome del metodo prima della parentesi. Ecco dove viene posizionata la lista dei parametri di tipo generici per i metodi generici. Dichiara i parametri di tipo generico accettati dal metodo, che quindi li rende disponibili per essere utilizzati negli argomenti, nei valori restituiti e nel corpo del metodo.

public static class Extensions 
{ 
    public static void MoveToTop<T>(this ICollection<T> sequence) 
    { 
     //logic for moving the item goes here. 
    } 
} 
Problemi correlati