草庐IT

LINQ_ENABLED

全部标签

c# - LINQ 使用 Max() 选择单行

我在从NHibernate返回的IQueryable上使用LINQ,我需要在几个字段中选择具有最大值的行。我已经简化了我坚持的部分。我需要从我的表中选择一个字段中具有最大值的一行。vartable=newTable{newRow(id:1,status:10),newRow(id:2,status:20)}fromuintablegroupuby1intogwhereu.Status==g.Max(u=>u.Status)selectu这是不正确的,但我无法算出正确的形式。顺便说一句,我实际上想要实现的大致是这样的:varclientAddress=this.repository.Ge

c# - Linq to EntityFramework 日期时间

在我的应用程序中,我使用的是EntityFramework。我的table-Article-period-startDate我需要匹配的记录=>DateTime.Now>startDate和(startDate+period)>DateTime.Now我试过这段代码,但它现在可以工作了Context.Article.Where(p=>p.StartDatep.StartDate.AddDays(p.Period)>DateTime.Now)当我运行我的代码时发生以下异常LINQtoEntitiesdoesnotrecognizethemethod'System.DateTimeAddD

c# - Distinct 不使用 LINQ to Objects

classProgram{staticvoidMain(string[]args){Listbooks=newList{newBook{Name="C#inDepth",Authors=newList{newAuthor{FirstName="Jon",LastName="Skeet"},newAuthor{FirstName="Jon",LastName="Skeet"},}},newBook{Name="LINQinAction",Authors=newList{newAuthor{FirstName="Fabrice",LastName="Marguerie"},newAutho

c# - LINQ 方法的运行时复杂性 (Big-O) 有哪些保证?

我最近开始大量使用LINQ,但我还没有真正看到任何提及任何LINQ方法的运行时复杂性。显然,这里有很多因素在起作用,所以让我们将讨论限制在普通的IEnumerableLINQ-to-Objects提供程序上。此外,我们假设作为选择器/修改器等传入的任何Func都是廉价的O(1)操作。很明显,所有单遍操作(Select、Where、Count、Take/Skip、Any/All等)的复杂度为O(n),因为它们只需要遍历序列一次;尽管即使这样也很懒惰。对于更复杂的操作,事情变得更加模糊;类集合运算符(Union、Distinct、Except等)默认使用GetHashCode工作(afai

c# - LINQ to Entities 区分大小写比较

这不是LINQtoEntities中区分大小写的比较:Thingies.First(t=>t.Name=="ThingamaBob");如何使用LINQtoEntities实现区分大小写的比较? 最佳答案 那是因为您正在使用LINQToEntities,它最终会将您的Lambda表达式转换为SQL语句。这意味着区分大小写取决于您的SQLServer,它默认具有SQL_Latin1_General_CP1_CI_AS排序规则,并且不区分大小写。使用ObjectQuery.ToTraceString看到生成的SQL查询实际提交给SQLS

c# - 如何使用 linq 表达式展平嵌套对象

我正在尝试像这样展平嵌套对象:publicclassBook{publicstringName{get;set;}publicIListChapters{get;set;}}publicclassChapter{publicstringName{get;set;}publicIListPages{get;set;}}publicclassPage{publicstringName{get;set;}}我举个例子。这是我的数据Book:ProLinq{Chapter1:HelloLinq{Page1,Page2,Page3},Chapter2:C#Languageenhancements

c# - 如何使用 LINQ to SQL 执行 CROSS JOIN?

如何使用LINQtoSQL执行交叉连接? 最佳答案 交叉连接只是两个集合的笛卡尔积。没有明确的连接运算符。varcombo=frompinpeoplefromcincarsselectnew{p.Name,c.Make,c.Model,c.Colour}; 关于c#-如何使用LINQtoSQL执行CROSSJOIN?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/56547/

c# - LINQ ToDictionary 和 ToLookup 有什么区别

LINQToDictionary和ToLookup有什么区别?他们似乎在做同样的事情。 最佳答案 字典是一个1:1映射(每个键映射到一个值),并且字典是事后可变(可编辑)的。查找是一个1:many映射(多映射;每个键映射到具有该键的值的IEnumerable),ILookup上没有变异界面。作为旁注,您可以查询查找(通过索引器)一个不存在的键,您将得到一个空序列。对字典做同样的事情,你会得到一个异常(exception)。那么:有多少记录共享每个键?一种过于简化的看待方式是Lookup与Dictionary>大致相当

c# - LINQ 按空列排序,其中顺序是升序的,空值应该排在最后

我正在尝试按价格对产品列表进行排序。结果集需要按LowestPrice列的价格从低到高列出产品。但是,此列可以为空。我可以像这样按降序对列表进行排序:varproducts=frompin_context.Productswherep.ProductTypeId==1orderbyp.LowestPrice.HasValuedescendingorderbyp.LowestPricedescendingselectp;//returns:102,101,100,null,null但是我不知道如何按升序对其进行排序。//i'dlike:100,101,102,null,null

c# - 使用 LINQ 将集合拆分为 `n` 部分?

这个问题在这里已经有了答案:SplitListintoSublistswithLINQ(34个答案)关闭去年。是否有使用LINQ将集合拆分为n部分的好方法?当然不一定均匀。也就是我想把集合分成子集合,每个子集合包含元素的一个子集,最后一个集合可以参差不齐。