Tôi có mã này trong các hình thức web:phương pháp mở rộng phải được định nghĩa trong một lớp tĩnh phi generic
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;
}
}
}
}
}
Khi tôi biên dịch mã này tôi nhận được lỗi
phương pháp mở rộng phải được xác định trong một lớp tĩnh không chung chung.
Câu hỏi của tôi là
- tôi không thể thay đổi partial class này để tĩnh. Làm thế nào tôi sẽ hoàn thành cùng một mà không có nó?
Tạo lớp tĩnh riêng biệt bằng phương pháp 'DistinctBy' trong đó. –
Đánh giá bởi bố cục cú đúp, có vẻ như phương thức mở rộng của bạn không thực sự ở bất kỳ lớp nào. Vì vậy, nó chỉ là vấn đề đặt nó trong lớp tĩnh của riêng nó. – BoltClock