我试图使用动态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) 是否可以从成员对象访问对象而不传递和存储引用?在下面的示例中,给定的椅子对象是否可以访问房屋对象,而房屋不必将其引用传递到成员层次结构?
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)