如何在其范围之外访问匿名对象的属性?

Mat*_*tin 1 c# linq var anonymous-types

范围可能不是正确的词.使用以下代码,我无法访问集合元素的对象属性.是否有更好的返回数据类型或访问这些属性的方法?

protected object Modules()
{
    DirectoryInfo di = new DirectoryInfo(Server.MapPath("~/"));
    var folders = from x in di.GetDirectories()
                    where
                    !(new string[] {
                        "app_data","bin","obj","scripts","styles","properties"
                        }).Contains<string>(x.Name.ToLower())
                    select new
                    {
                        Name = x.Name,
                        Path = x.FullName
                    };
    return folders
}
Run Code Online (Sandbox Code Playgroud)

Dan*_*rth 5

有两种可行的解决方案:

  1. 为它创建一个真正的类.这是首选的解决方案.
  2. 让你的方法返回dynamic而不是object.这样做的问题是您丢失了使用此方法结果的代码的编译时检查.