小编Dar*_*ura的帖子

动态Linq - 对具有"动态"类型成员的对象执行查询

我试图使用动态linq查询从对象集合(Linq到Object)中检索IEnumerable <T>,集合中的每个对象都有一个内部集合,其中包含存储数据的另一组对象,这些值通过外部集合中的索引器访问

当您使用强类型对象但我的对象将数据存储在动态类型的成员中时,动态linq查询会按预期返回已过滤的集,请参阅下面的示例:

public class Data
{
    public Data(string name, dynamic value)
    {
        this.Name = name;
        this.Value = value;
    }

    public string Name { get; set; }
    public dynamic Value { get; set; }
}

public class DataItem : IEnumerable
{
    private List<Data> _collection;

    public DataItem()
    { _collection = new List<Data>(); }

    public dynamic this[string name]
    {
        get
        {
            Data d;
            if ((d = _collection.FirstOrDefault(i => i.Name == name)) == null)
                return (null);

            return (d.Value);
        }
    }

    public …
Run Code Online (Sandbox Code Playgroud)

c# lambda expression-trees dynamic-linq

7
推荐指数
1
解决办法
6154
查看次数

获取包含类的实例

是否可以从成员对象访问对象而不传递和存储引用?在下面的示例中,给定的椅子对象是否可以访问房屋对象,而房屋不必将其引用传递到成员层次结构?

public class Chair {
    public string Material { get; set; }

    public Chair() {
       Material = "Wood";
    }

    public bool IsInMiami() {
       // Get instance of House where chair is found
       House house = ... // Reflection?
       return house.City.Equals("Miami");
    }
}

public class Room {
    private List<Chair> _chairs;

    public Room() {
       _chairs = new List<Chair>();
       _chairs.Add(new Chair());
    } 
}

public class House {
    private List<Room> _rooms;
    public string City { get; set; }

    public House() {
       _rooms = new …
Run Code Online (Sandbox Code Playgroud)

c# reflection reference

5
推荐指数
1
解决办法
2517
查看次数