查询FirstOrDefault的动态对象列表下面的代码会返回Enumerable动态对象。protectedoverridedynamicGet(intid){Funccheck=x=>x.ID==id;返回Enumerable.Where(this.Get(),检查);我如何选择FirstOrDefault以便它是单个对象而不是Enumerable?与此答案类似,但只需要SingleOrDefault。最简单的方法是protectedoverridedynamicGet(intid){returnGet().FirstOrDefault(x=>x.ID==id);由于有些人在执行此操作时遇到问题,请测试新的.NET4.0控制台项目(如果从3.5转换,则需要添加System.Core和Microsoft.CSharp引用)并将其粘贴到Program.cs中。在我测试过的3台机器上编译和运行没有问题。使用系统;使用System.Collections.Generic;使用System.Linq;使用System.Dynamic;namespaceConsoleApplication1{内部类程序{protecteddynamicGet2(intid){Funccheck=x=>x.ID==id;返回Enumerable.FirstOrDefault(this.Get(),检查);}protecteddynamicGet(intid){returnGet().FirstOrDefault(x=>x.ID==id);}内部IEnumerableGet(){动态a=newExpandoObject();a.ID=1;动态b=newExpandoObject();b.ID=2;动态c=newExpandoObject();c.ID=3;返回新[]{a,b,c};}staticvoidMain(string[]args){varprogram=newProgram();Console.WriteLine(程序.Get(2).ID);控制台.WriteLine(程序.Get2(2).ID);}}}您可以将代码用于FirstOrDefault而不是Where。像这样:protectedoverridedynamicGet(intid){Funccheck=x=>x.ID==id;返回Enumerable.FirstOrDefault(this.Get(),检查);}就是这样?以上就是C#学习教程:查询FirstOrDefault的动态对象列表共享的所有内容。如果对大家有用,需要详细了解C#学习教程,希望大家多多关注——protectedoverridedynamicGet(intid){Funccheck=x=>x.ID==id;返回Enumerable.Where(this.Get(),检查).FirstOrDefault();}本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
