Как я могу построить Expression цикла для итерации члена коллекции на объекте - PullRequest
0 голосов
/ 23 ноября 2011

Глядя на ToStringBuilder от chillitom Я подумал, что хотел бы расширить его, сделав так, чтобы вызов Include () для свойства или поля, которое само по себе являлось типом коллекции, вызывал циклколлекция и (фактически) вызов ToString () для каждого дочернего элемента в коллекции (фактически вызов String.Builder.Append (), но вы поняли).

Мне нужны некоторые подсказки о том, какнапишите выражение для просмотра содержимого коллекции, взяв в качестве отправной точки метод MemberExpression, предоставленный методу Include ().

1 Ответ

1 голос
/ 24 ноября 2011

Просто "кодирование" в поле для ответов здесь, поэтому не тестируемый код, но я думаю, что вы хотите что-то вроде:

public ToStringBuilder<T> Include(IEnumerable<T> collection, Expression<Func<T, TResult>> expression)
{
    var builder = new ToStringBuilder<T>();
    foreach(var item in collection)
    {
        builder.Include(item, expression);
    }
    return builder;
}

Иначе, я думаю, я не совсем понимаю, что вы хотите

...