C# 4.0 如何构建循环表达式来迭代对象上的集合成员

C# 4.0 如何构建循环表达式来迭代对象上的集合成员,c#-4.0,collections,expression,C# 4.0,Collections,Expression,通过chillitom的研究,我认为我想对其进行扩展,对本身是集合类型的属性或字段调用Include(),将导致在集合中循环,并(有效地)对集合中的每个子项调用ToString()(实际上调用String.Builder.Append(),但您知道了) 我需要一些提示,告诉我如何编写表达式来查看集合的内容,以提供给Include()方法的MemberExpression为起点。只需在应答框中进行“编码”,因此没有经过测试的代码,但我想您需要这样的代码: public ToStringBuilde

通过chillitom的研究,我认为我想对其进行扩展,对本身是集合类型的属性或字段调用Include(),将导致在集合中循环,并(有效地)对集合中的每个子项调用ToString()(实际上调用String.Builder.Append(),但您知道了)

我需要一些提示,告诉我如何编写表达式来查看集合的内容,以提供给Include()方法的MemberExpression为起点。

只需在应答框中进行“编码”,因此没有经过测试的代码,但我想您需要这样的代码:

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;
}
public-ToStringBuilder包含(IEnumerable集合、表达式)
{
var builder=new-ToStringBuilder();
foreach(集合中的var项)
{
包括(项目、表达);
}
返回生成器;
}

否则我想我真的不明白你想要什么

谢谢,我会尽力澄清这个问题。我们没有访问集合实例的权限,只有MemberExpression。