草庐IT

Linq2XSD

全部标签

c# - Linq ToList/ToArray/ToDictionary 性能

好吧,我遇到过很多情况,只有IEnumerable是不够的。但是我不确定上述方法调用的性能。我真正想问的是:是ToList/ToArray的表现:将IEnumerable复制到新数组/列表的O(n)操作?如果我在列表上调用一个linq扩展方法,如果我调用ToList,它的性能为O(1),如果调用ToArray,则性能为O(n)(如果我的原始列表是数组,则相反)?神奇的事情发生了,性能是O(1)?可能到字典是O(n),对吧? 最佳答案 IstheperformanceofToList/ToArrayanO(n)operationwhi

c# - 使用 LINQ 创建 SelectListItem 的集合

我试图在我的View中显示一个用户下拉列表。这是我在Controller方法中使用的代码:varusers=_usersRepository.Users.Select(u=>newSelectListItem{Text=u.FirstName+""+u.LastName,Value=u.UserID.ToString()}returnView(newMyViewModel{Users=users});我在尝试将UserID转换为字符串时遇到错误:LINQtoEntitiesdoesnotrecognizethemethod'System.StringToString()'method,

c# - 使用 LINQ 创建 SelectListItem 的集合

我试图在我的View中显示一个用户下拉列表。这是我在Controller方法中使用的代码:varusers=_usersRepository.Users.Select(u=>newSelectListItem{Text=u.FirstName+""+u.LastName,Value=u.UserID.ToString()}returnView(newMyViewModel{Users=users});我在尝试将UserID转换为字符串时遇到错误:LINQtoEntitiesdoesnotrecognizethemethod'System.StringToString()'method,

c# - 如何在不迭代的情况下将 Linq 结果转换为 DTO 类对象

我正在构建一个WebAPI项目,该项目将提供给第三方,同时也供我自己的Web应用程序使用。WebAPI方法将返回复杂类型/对象的JSON表示。这些是我可以提供给第三方的预定义类,以便他们了解数据的结构并可以反序列化JSON。在有人纠正我之前,我会将这些类称为DTO类。我有以下自动生成的实体模型(来自数据库),这是User类,无论如何与Scan表有关系(出于这个问题的目的可以忽略关系)...publicpartialclassUser{publicUser(){this.Scans=newHashSet();}publicintId{get;set;}publicstringUserna

c# - 如何在不迭代的情况下将 Linq 结果转换为 DTO 类对象

我正在构建一个WebAPI项目,该项目将提供给第三方,同时也供我自己的Web应用程序使用。WebAPI方法将返回复杂类型/对象的JSON表示。这些是我可以提供给第三方的预定义类,以便他们了解数据的结构并可以反序列化JSON。在有人纠正我之前,我会将这些类称为DTO类。我有以下自动生成的实体模型(来自数据库),这是User类,无论如何与Scan表有关系(出于这个问题的目的可以忽略关系)...publicpartialclassUser{publicUser(){this.Scans=newHashSet();}publicintId{get;set;}publicstringUserna

c# - 缓冲 LINQ 查询

最终编辑:我选择了Timothy的答案,但如果您想要一个利用C#yield语句的更简洁的实现,请查看Eamon的答案:https://stackoverflow.com/a/19825659/145757默认情况下,LINQ查询是惰性流式传输。ToArray/ToList提供完全缓冲,但首先它们是急切,其次可能需要相当长的时间完成无限序列的时间。有什么方法可以结合两种行为:streaming和buffering值在生成时即时生成,这样下一次查询就不会触发生成已经查询过的元素。这是一个基本用例:staticIEnumerableNumbers{get{inti=-1;while(true

c# - 缓冲 LINQ 查询

最终编辑:我选择了Timothy的答案,但如果您想要一个利用C#yield语句的更简洁的实现,请查看Eamon的答案:https://stackoverflow.com/a/19825659/145757默认情况下,LINQ查询是惰性流式传输。ToArray/ToList提供完全缓冲,但首先它们是急切,其次可能需要相当长的时间完成无限序列的时间。有什么方法可以结合两种行为:streaming和buffering值在生成时即时生成,这样下一次查询就不会触发生成已经查询过的元素。这是一个基本用例:staticIEnumerableNumbers{get{inti=-1;while(true

c# - 哪些 LINQ 语句强制 Entity Framework 从数据库返回?

我知道有几个LINQ语句会导致EF计算结果并将结果从DB返回到内存。.ToList()就是一个。有没有人有执行此操作的完整语句列表?不确定....SingleOrDefault().Union()编辑:希望我能接受所有这些答案。来自每个人的好信息! 最佳答案 很长list.他们归结为AggregateAllAnyAverageContainsCountElementAtElementAtOrDefaultEmptyFirstFirstOrDefaultLastLastOrDefaultLongCountMaxMinSequenceE

c# - 哪些 LINQ 语句强制 Entity Framework 从数据库返回?

我知道有几个LINQ语句会导致EF计算结果并将结果从DB返回到内存。.ToList()就是一个。有没有人有执行此操作的完整语句列表?不确定....SingleOrDefault().Union()编辑:希望我能接受所有这些答案。来自每个人的好信息! 最佳答案 很长list.他们归结为AggregateAllAnyAverageContainsCountElementAtElementAtOrDefaultEmptyFirstFirstOrDefaultLastLastOrDefaultLongCountMaxMinSequenceE

c# - LINQ 中的条件谓词?

有没有办法将if和else部分的查询结合起来?publicListGetData(Categorycategory,boolflag=true){IQueryableresult;if(flag){result=Session.All().Where(mc=>mc.Col.Equals(category.ToString())&&mc.FLAG);}else{result=Session.All().Where(mc=>mc.Col.Equals(category.ToString()));}returnresult.ToList();} 最佳答案