Я пытаюсь закодировать метод расширения Linq MinBy
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;
}
}
. Я думаю, что моя логика верна и читабельна. Но я получаю ошибку сборки
Use of unassigned local variable 'min'
Что я могу с этим поделать? Могу ли я проверить, назначена ли переменная?
Пояснение :Функция MinBy может ответить на следующий вопрос. У какого из чисел [-5, -2, 3] наименьший квадрат?
> new List<int>{-5,-2,3}.MinBy(x => x*x)
-2
Функция Min в.NET отвечает на другой вопрос (, который является наименьшим из квадратов )
> new List<int>{-5,-2,3}.Min(x => x*x)
4
-. 121 ---1030761-
Я установил Eclipse 3.7.2 из APT в Ubuntu 12.04 и установил PyDev в Eclipse. Во-первых, он предупреждает о неиспользованном импорте и неиспользованном диком импорте, но сегодня он больше не отображает их. Однако он может отображать такие ошибки, как отсутствующие скобки.
Я создал нового пользователя и установил PyDev, используя этого пользователя, проблема все еще возникает. Как я могу включить их для предупреждений? Я не менял настройки анализа кода.