我有一个很好的LINQ查询,它运行良好,它返回一个结果集,每个结果集都继承自MyBase。
我需要通过对我拥有的字符串集合进行循环来替换AbcTransport。这些字符串实际上是对象名称(类)
MyBase testItem = from x in AbcTransport
from y in x.SolidItems
where y.Classified == otherObject.Classified
select x;
这将减少我需要编写的代码量。
我认为动态Linq可以实现这一点,但我不确定从哪里开始。
想象一下,我目前有大约26个像AbcTransport这样的对象,它们都被命名为不同但都继承自MyBase。我感兴趣的属性实际上是在MyBase上。如果我可以使用动态linq做一种循环,我不需要编写我的查询26次,并且还可以维护,因为当我添加更多对象时,我只需要将对象名称添加到我的集合中,就是这样。 / p>
答案 0 :(得分:3)
为什么不将该查询放在泛型方法中?
MyBase Get<T>(IEnumerable<T> list) where T : MyBase
{
MyBase testItem = from x in list
from y in x.SolidItems
where y.Classified == otherObject.Classified
select x;
return testItem;
}
您可以这样称呼它:
var result1 = Get(AbcTransport);
var result2 = Get(DefTransport);