ho questo codice in moduli web:metodo di estensione deve essere definito in una classe statica non generico
namespace TrendsTwitterati
{
public partial class Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
List<TweetEntity> tweetEntity = tt.GetTweetEntity(1, "")
.DistinctBy(e => e.EntityPicURL);
}
public static IEnumerable<TSource> DistinctBy<TSource, TKey>(
this IEnumerable<TSource> source, Func<TSource, TKey> keySelector)
{
HashSet<TKey> seenKeys = new HashSet<TKey>();
foreach (TSource element in source)
{
if (seenKeys.Add(keySelector(element)))
{
yield return element;
}
}
}
}
}
Quando compilo questo codice ottengo l'errore
metodo di estensione deve essere definito in una classe statica non generica.
La mia domanda è
- Non posso cambiare questa classe parziale statica. Come realizzerò lo stesso senza di esso?
Creare una classe statica separata con il metodo 'DistinctBy'. –
A giudicare dal layout della controventatura sembrerebbe che il tuo metodo di estensione non sia affatto in nessuna classe. Quindi è solo questione di metterlo nella sua classe statica. – BoltClock