var student1 = new {name: "abc"};
var student2 = new {name: "efg"}
var department1 = new { name: "science", location= "ny"}
var department2 = new { name: "maths", location= "nj"}
var department3 = new { name: "social", location= "ny"}
List<dynamic> dynamicList = new List<dynamic>();
dynamicList.Add(student1);
dynamicList.Add(student2);
dynamicList.Add(department1);
dynamicList.Add(department2);
dynamicList.Add(department3);
现在我想获得总对象的个数在dynamicList其中location =“NY”查询数据,有多种类型的对象
var total = dynamicList.Count(x=> (string)x.location == "ny");
这是抛出异常,因为有没有定义位置。
UDPATE:当我有位置属性的对象是冷杉锡名单同LINQ查询工作。
dynamicList.Add(department1);
dynamicList.Add(department2);
dynamicList.Add(department3);
dynamicList.Add(student1);
dynamicList.Add(student2);
var total = dynamicList.Count(x=> (string)x.location == "ny");
这可以解决任何错误。
好LINQ的作品当我第一次在列表中有动态物体的位置属性。如果我忘记了LINQ什么是性能问题的替代品 – HaBo
我已经更新了我的答案,以说明您的其他替代方案的性能问题。很明显,因为你选择使用'dynamic'类型,所以你已经在设计中遇到了这样的性能问题,所以我解释的解决方案不会对你有太大的影响。 –