Tôi có một enum (bên dưới) mà tôi muốn có thể sử dụng phương pháp mở rộng LINQ.Các phương pháp mở rộng có thể đếm được trên một Enum
enum Suit{
Hearts = 0,
Diamonds = 1,
Clubs = 2,
Spades = 3
}
Enum.GetValues (...) là kiểu trả về Hệ thống. Nhưng tôi dường như không thể truy cập vào tiện ích ToList() hoặc bất kỳ thứ gì khác thuộc loại đó.
Tôi chỉ tìm kiếm để viết một cái gì đó giống như ...
foreach(Suit s in Enum.GetValues(typeof(Suit)).Select(x=>x).Where(x=> x != param)){}
Có cái gì tôi đang mất tích, hoặc ai đó có thể giải thích cho tôi tại sao điều này là không thể?
Cảm ơn.
Tôi có xu hướng thấy 'OfType' phù hợp hơn khi bạn muốn lọc danh sách và' Truyền' để truyền. Có lý do nào để sử dụng 'Int32' thay vì' Suit' không? –
Đối với bất kỳ 'IEnumerable' có chứa các loại đồng nhất, 'OfType' và 'Cast ' sẽ thực hiện và hoạt động hầu như giống hệt nhau. Đối với việc sử dụng 'Int32' hơn là' Suit' Tôi không thực sự chắc chắn lý do tại sao tôi đã làm điều đó - câu trả lời của tôi đã được sửa chữa. –
Hoạt động giống như tôi đang tìm kiếm. Cảm ơn! – ahawker