如何从字符串名称创建动态LINQ选择投影函数?使用C#...有没有一种方法可以将投影函数的属性名称指定给数组中的LINQselect方法。公共类相册{publicintId{get;放;}公共字符串名称{得到;放;}publicshortRate{get;放;}publicstring流派{get;publicclassClass1{privatevoidSome(){//源代码示例varnames=new[]{"Id","Name","Tracks"};var查询=myDataContext。获取表。作为查询()。Select(/*来自名称数组的动态投影*/);//类似于//Select(x=>new//{//x.Id,//x.Name,//x.Tracks//}GoAndDoSomethingWith(query);}}这可以在没有System.Linq的情况下完成吗.Dynamic?你可以使用反射和动态类型来生成只包含指定字段/属性的对象。这里有一个简单的方法。你可以进行优化,比如为反射缓存设置类型。但这适用于简单的字段/属性。publicstaticobjectDynamicProjection(objectinput,IEnumerableproperties){vartype=input.GetType();动态dObject=newExpandoObject();vardDict=dObjectasIDictionary;foreach(varpinproperties){varfield=type.GetField(p);if(field!=null)dDict[p]=field.GetValue(input);varprop=type.GetProperty(p);if(prop!=null&&prop.GetIndexParameters().Length==0)dDict[p]=prop.GetValue(input,null);}返回dObject;}用法:以上是C#学习教程:HowtocreateadynamicLINQselectionprojectionfunctionfromastringname?如果分享的内容对你有用,需要了解更多C#学习教程,希望大家多多关注——//...varnames=new[]{"Id","Name","Tracks"};varprojection=collection.Select(x=>DynamicProjection(x,names));//...本文摘自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
