草庐IT

c# - 在集合 : LINQ 中查找下一条记录

我有一个对象列表,它们都有一个id属性例如1,10,25,30,4我有一个currentId,我需要在列表中找到下一个Id因此,例如当前Id设置为25,我需要返回id为30的对象。之后的对象将是4。我如何在LINQ中优雅地执行此操作?编辑列表按“排序”属性排序。所以你不能只按id排序,因为那样会弄乱顺序。 最佳答案 无需重新排序(请注意,我稍微编辑了一下,因为我认为我误读了问题):int[]data={1,10,25,30,4};intlast=25;varnext=data.SkipWhile(i=>i!=last).Skip(1

c# - 从 LINQ 表达式中提取 sql 查询

是否可以从LINQ查询中提取sql语句?比如说,我有这个LINQ表达式。string[]names=newstring[]{"JonSkeet","MarcGravell","tvanfosson","cletus","GregHewgill","JaredPar"};varresults=fromnameinnameswherename.StartsWith("J")selectname;alttexthttp://ruchitsurati.net/files/linq-debugging.png在此语句之后,“results”仅包含LINQ表达式,而不是由于延迟执行LINQ查询而导

c# - 嵌套列表上的 Linq - 选择所有 ID

我有一个嵌套列表,像这样:ListHotels;publicclassHotel{ListRoomType;}publicclassRoomType{RoomRoom;}publicclassRoom{intRoomId;}有点绕,抱歉想不出更好的模型。我的想法是我有很多酒店,每个酒店都有很多房间类型,并假设每个房间类型都有一个房间对象。现在从酒店列表中,我只想选择所有RoomId的..我被困在这里,同时试图嵌套所有列表..现在,我正在尝试://cantdothissomeinvaliderrorint[]AllRoomIds=Hotels.selectMany(x=>x.Rooms)

c# - 在列表中使用 Linq 选择列表

使用LINQ如何从列表中的列表中进行选择publicclassModel{publicstringapplication{get;set;}publicListusers{get;set;}}publicclassUsers{publicstringname{get;set;}publicstringsurname{get;set;}}Listlist=newList();我需要选择listwhereapplication="applicationame"和userswheresurname="surname"到一个列表中。 最佳答案

c# - 使用 LINQ to Entities( Entity Framework )比较日期

我需要从我的数据库中返回一个项目列表,这些项目在项目提供的日期的预先指定的时间到期。我的错误代码如下:returnAll().Where(o=>newDateTime(o.expiry_date.Year,o.expiry_date.Month,o.expiry_date.Day,17,30,0)>=DateTime.Now)我得到的错误是:LINQtoEntities仅支持无参数构造函数和初始化器有谁知道我该如何解决这个问题? 最佳答案 使用EntityFunctions反而。也许CreateDateTime方法。所以可能是这样的

c# - Linq 返回字符串

我不确定为什么以下内容不以字符串形式返回Vend的值。当我检查vend的值时,它说:System.Data.Objects.ObjectQuery``1[System.String]stringvend=(fromvndindb.Vendorswherevnd.VendorID==idselectvnd.VendorName).ToString();当我查看vend的值时,它不是我所期望的 最佳答案 你得到一个IQueryable从你查询回来。您需要First或Single或其他东西:stringvend=(fromvndindb.

c# - 使用 Enumerable.OfType<T>() 或 LINQ 查找特定类型的所有子控件

存在MyControl1.Controls.OfType()仅通过初始集合搜索,不进入child。是否可以使用Enumerable.OfType()找到特定类型的所有子控件?或LINQ不写自己的递归方法?喜欢this. 最佳答案 我使用扩展方法来展平控制层次结构,然后应用过滤器,所以这是使用自己的递归方法。方法是这样的publicstaticIEnumerableFlattenChildren(thisControlcontrol){varchildren=control.Controls.Cast();returnchildren

c# - 将 linq 查询转换为字符串数组 - C#

将单列linq查询转换为字符串数组的最有效方法是什么?privatestring[]WordList(){DataContextdb=newDataContext();varlist=fromxindb.Wordsorderbyx.Wordascendingselectnew{x.Word};//returnstringarrayhere}注意-x.Word是一个字符串 最佳答案 我更喜欢lambda风格,你真的应该处理你的数据上下文。privatestring[]WordList(){using(DataContextdb=new

c# - LINQ 如何在 lambda 表达式中选择超过 1 个属性?

我们经常使用下面的lambda表达式MyList.Select(x=>x.Id).ToList();是否可以使用lambda表达式获得超过1个属性?例如来自MyList的Id和Name?我知道我可以使用以下语法:(fromiteminMyListselectnew{item.Id,item.Name}).ToList();我可以使用lambda表达式做同样的事情吗? 最佳答案 MyList.Select(x=>new{x.Id,x.Name}).ToList(); 关于c#-LINQ如何

c# - 使用 C# 和 LINQ 比较两个大型字符串列表的最佳方法?

我有一个很大的列表(约110,000个字符串),我需要将其与类似大小的列表进行比较。列表A来自1个系统。列表B来自一个SQL表(我只能读取,没有存储过程等)查找列表A中不再存在于列表B中的值的最佳方法是什么?在数组中处理100,000个字符串是否很大?谢谢 最佳答案 所以你有两个这样的列表:ListlistA;ListlistB;然后使用Enumerable.Except:Listexcept=listA.Except(listB).ToList();请注意,如果您想忽略大小写:Listexcept=listA.Except(lis