Лямбда выражение в качестве параметра метода. Как получить свойство с которым производится операция? - C#

Узнай цену своей работы

Формулировка задачи:

Добрый день! Нужно в методе принимать лямбду:
obj.Get(x=>x.ParentId==5);
Как мне из этой лямбды в методе Get получить имя свойства "ParentId"?
Get(Func<WorkItem, bool> expr){
    //Как получить ParentId
}

Решение задачи: «Лямбда выражение в качестве параметра метода. Как получить свойство с которым производится операция?»

textual
Листинг программы
using System;
using System.Linq.Expressions;
 
namespace ConsoleApplication22
{
    class Program
    {
        static void Main(string[] args)
        {
            string name = GetName<ConsoleKeyInfo, ConsoleKey>(x => x.Key);
            Console.WriteLine(name);
        }
 
        private static string GetName<T, TResult>(Expression<Func<T, TResult>> member)
        {
            MemberExpression memberExpression = member.Body as MemberExpression;
            if (memberExpression == null)
            {
                memberExpression = (MemberExpression)((UnaryExpression)member.Body).Operand;
            }
            return memberExpression.Member.Name;
        }
    }
}

ИИ для рефератов и докладов


  • Экспорт Word по ГОСТу
  • Минимум 80% уникальности текста
  • Поиск релевантных источников в интернете
  • Готовый документ за 2 минуты

Оцени полезность:

13   голосов , оценка 4.077 из 5
Похожие ответы