Tag: 在哪里

用lambda表达式参数调用generics方法的reflection

我正在寻找一种方法来调用带有lambda表达式的generics方法,该表达式在一个项目数组中调用Contains。 在这种情况下,我正在使用Entity Framework Where方法,但该方案可以应用于其他IEnumerables。 我需要通过Reflection调用上面代码的最后一行,所以我可以使用任何类型和任何属性传递给Contains方法。 var context = new TestEntities(); var items = new[] {100, 200, 400, 777}; //IN list (will be tested through Contains) var type = typeof(MyType); context.Set(type).Where(e => items.Contains(e.Id)); //**What is equivalent to this line using Reflection?** 在研究中,我注意到我应该使用GetMethod,MakeGenericType和Expression来实现这一点,但我无法弄清楚如何去做。 有这个样本非常有帮助,所以我可以理解Reflection如何与Lambda和Generic概念一起工作。 基本上,目标是编写一个正确版本的函数,如下所示: //Return all items from a IEnumerable(target) that has at least one matching […]

Linq通过变量访问属性

假设我有一个类: public class Foo { public string Title {get;set;} } 现在,让我们假设我有一个public List myList ,我希望Linq过滤它: var x = myList.Where(f => f.Title == myValue); 到目前为止,一切都很美好。 但是如何通过变量访问属性? 就像是: string myProperty = “Title”; var x = myList.Where(f => f.myProperty == myValue);

你能用“where”来要求c#中的属性吗?

我想创建一个只接受可序列化类的generics类,可以用where约束来完成吗? 我正在寻找的概念是这样的: public class MyClass where T : //[is serializable/has the serializable attribute]