Как делает Func <T, TResult> Работа?

дополнение Веб-разработчика позволяет нам, Вы сохраняете свои редактирования. Я хотел бы объединить редактирование Firebug с функцией Save Веб-разработчика.

alt text

Использование" Сохраняет " кнопка (нажмите меню CSS-> CSS Редактирования) сохранять измененный CSS на диск.

Recomendation: Используйте" Палка " кнопка для предотвращения потери изменений при изменении вкладки для того, чтобы сделать другой просмотр. Если это возможно, используйте только одну вкладку, чтобы сделать редактирование и другое окно Firefox похожие запросы, веб-почта, и т.д.

19
задан jszigeti 10 June 2013 в 20:20
поделиться

3 ответа

Когда вы делаете это:

persons.Distinct(p => p.Name);

Вы в основном создаете функцию на лету ( с использованием лямбда-выражений ), которая выглядит так:

string theFunction(Person p)
{
    return p.Name;
}

Это функция, которая соответствует сигнатуре делегата Func . Метод Distinct может принимать делегат (в основном указатель на функцию), который он использует, чтобы определить, является ли элемент отличным - в вашем случае только уникальные строки (возвращенные функцией выше) будут считаться «отдельными» элементами. Этот делегат запускается для каждого элемента вашего перечислимого "person", и используются результаты этих функций. Затем он создает последовательность ( IEnumerable ) из этих элементов.

34
ответ дан 30 November 2019 в 03:08
поделиться
Func<T, TResult>

определяет функцию, которая принимает один параметр (типа T) и возвращает объект (типа TResult) .

В вашем случае, если вам нужна функция, которая принимает объект Person и возвращает строку ... вам нужно

Func<Person, string>

, что эквивалентно:

string Function(Person p)
{
    return p.Name;
}
9
ответ дан 30 November 2019 в 03:08
поделиться

Вы возвращаете разных Людей, исходя из предположения, что два Человека одинаковы, если у них одно и то же имя

Если вам нужен отдельный набор имен, вы можете использовать это:

IEnumerable<String> names = persons.Select(p => p.Name).Distinct();
0
ответ дан 30 November 2019 в 03:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: