Tôi đang cố gắng để mã hóa một phương pháp mở rộng LINQ MinByC# kiểm tra nếu biến giao
public static class Extensions
{
public static T MinBy<T>(this IEnumerable<T> source, Func<T,int> selector)
{
T min;
int? minKey = null;
foreach (var x in source)
{
var key = selector(x);
if (minKey == null || key < minKey)
{
minKey = key;
min = x;
}
}
if (minKey == null)
{
throw new ArgumentException("source should not be empty");
}
return min;
}
}
Tôi nghĩ logic của tôi là chính xác và dễ đọc. Nhưng tôi nhận được một build lỗi
Sử dụng unassigned địa phương biến 'phút'
Tôi có thể làm gì về điều này? Tôi có thể kiểm tra nếu biến được gán không?
Làm rõ: Chức năng MinBy có thể trả lời câu hỏi sau. Số nào trong số [-5, -2, 3] có hình vuông nhỏ nhất?
> new List<int>{-5,-2,3}.MinBy(x => x*x)
-2
Min chức năng NET của câu trả lời một câu hỏi khác nhau (đó là nhỏ nhất của các hình vuông)
> new List<int>{-5,-2,3}.Min(x => x*x)
4
IQueryable <> thậm chí còn tốt hơn IEnumerable <> imho cho việc này. – Alex
Tôi có thể truy xuất được gì? –
Kiểm tra nó trên MSDN, đó là một loại bộ sưu tập cho phép truy vấn chuỗi, rất mạnh mẽ. – Alex