c # использование свойства класса в качестве аргумента более простым способом - PullRequest
0 голосов
/ 12 января 2019

У меня есть метод, который работает нормально, чтобы получить индекс списка, используя свойство класса в качестве аргумента.

код:

public static int GetIndex<T, TKey>(this T myTypeClass, Expression<Func<T, TKey>> propertySelector)
{
    var body = (MemberExpression)propertySelector.Body;
    var propertyInfo = (PropertyInfo)body.Member;

    // list where I need to find the index for the property defined in the argument
    List<KeyValuePair<PropertyInfo, int>> indexList = GlobalClassList;

    // simple LINQ line to retrieve the int that corresponds with the 'propertyInfo'
    int i = indexList.FindIndex(p => p.Key.Equals(propertyInfo));
    return i;
}

Для вызова метода:

MyClass myClass = new MyClass();
myClass.GetIndex(c=>c.property)

То, что я пытаюсь сделать, это упростить аргумент в методе, используя только свойство класса (c.property), вместо этого полагаясь на использование Expression<Func<T, TKey>> (c=>c.property). Это возможно?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...