У меня есть метод, который работает нормально, чтобы получить индекс списка, используя свойство класса в качестве аргумента.
код:
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
).
Это возможно?