.NET 4.x Деревья выражений - C#
Формулировка задачи:
Здравствуйте,
помогите пожалуйста разобраться с деревьями выражений.
Хочу вызвать метод в который передаю List организаций, и три лямбда выражения.
Это тело метода:
В интернете пыталась найти примеры, чтобы найти то, чтобы работало так как я бы задумала, но все равно компилятор, как не компилировался, так и не компилируется...
PrintDifference(Companies, c1 => c1.CompanyID == 42, c2 => c2.CompanyID == 44, c=>c.FullName);
private string PrintDifference<T, TExtraProp1, TExtraProp2, TExtraProp3, TT >(IEnumerable<T> sourceInstance, Expression<Func<T, TExtraProp1>> excludeExpression1, Expression<Func<T, TExtraProp2>> excludeExpression2, Expression<Func<TT, TExtraProp3>> excludeExpression3) { //сначало пытаюсь достать одну организацию var company1 = sourceInstance.First(excludeExpression1); //затем пытаюсь достать другую организацию var company2 = sourceInstance.First(excludeExpression2); //потом пытаюсь достать значение свойства "FullName" одной организации var compareValue1 = company1.Select(excludeExpression3); //потом пытаюсь достать значение свойства "FullName" другой организации var compareValue2 = company2.Select(excludeExpression3); if (compareValue1 == compareValue2) return "yes"; return ""; }
Решение задачи: «.NET 4.x Деревья выражений»
textual
Листинг программы
private string PrintDifference<T, TExtraProp3>(IEnumerable<T> sourceInstance, Expression<Func<T, bool>> excludeExpression1, Expression<Func<T, bool>> excludeExpression2, Expression<Func<T, TExtraProp3>> excludeExpression3) { //сначало пытаюсь достать одну организацию var company1 = sourceInstance.AsQueryable().First(excludeExpression1); //затем пытаюсь достать другую организацию var company2 = sourceInstance.AsQueryable().First(excludeExpression2); //потом пытаюсь достать значение свойства "FullName" одной организации var compareValue1 = excludeExpression3.Compile()(company1); //потом пытаюсь достать значение свойства "FullName" другой организации var compareValue2 = excludeExpression3.Compile()(company2); if (compareValue1.ToString() == compareValue2.ToString()) return "yes"; return ""; }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д