Tag: linq

.Net中LINQ和Lambdaexpression式的效率和性能是什么?

我已经使用.Net 3.5和VS 2008超过一个月。 和大多数.Net开发者一样,我已经从.Net 1.0&2.0和VS 2005的多年经验发展而来。最近,我发现了LINQ和Lambdaexpression式的简单性和强大性,就像我最近的问题,比如在列表中find一个项目LINQ , 使用Lambda或LINQ 将 类实例转换或映射到另一个类的实例列表 ,以及使用Lambda或LINQ 将类的列表转换或映射到另一个类的列表 。 我承认Lambda和LINQ更简单易读,而且看起来非常强大。 在幕后,.NET编译器必须生成大量代码才能实现这些function。 因此,我有点犹豫,转向新的语法,因为我已经知道“老”的方式来实现相同的结果。 我的问题是关于Lambda和LINQ的效率和性能。 也许Lambdaexpression式大多是内联函数,在这种情况下,我猜Lambda应该没问题。 那么LINQ呢? 让我们将讨论限制在LINQ到对象的LINQ到SQL(LINQ到SQL)。 任何意见,比较和经验?

如何编写一个VB.Net Lambdaexpression式

我正在研究一个VB.net项目。 我是VB.Net LINQ的新手,想知道Lambda的等价物 var _new = orders.Select(x => x.items > 0); 在VB.Net。 有人请build议!

Linq:在连接中==和equals有什么区别?

我总是想知道为什么在linq连接中有一个equals关键字,而不是使用==操作符。 Property deadline = (from p in properties join w in widgets on p.WidgetID equals w.ID select p).First(); 代替 Property deadline = (from p in properties join w in widgets on p.WidgetID == w.ID select p).First(); [编辑]改写了这个问题,并修改了例子。

Moqing Enity框架6.使用DbSet <>包含()

我想提出这个问题的背景。 跳过,如果你喜欢。 相当长一段时间以来,我一直密切关注正在进行的有关testing代码的stackoverflow和其他地方的辩论,因为它涉及到EF。 一个阵营说,由于Linq到Objects&Sql和实现之间的差异,直接针对数据库进行testing。 另一个说嘲笑testing。 另一个意见分歧是使用存储库的问题,或接受DbContext和DbSet已经提供工作单元和存储库模式。 在我使用EF的时候,我已经尝试过这些阵营提供的每一个意见组合。 无论我做了什么,EFcertificate是难以testing。 我非常兴奋地发现EF团队使得DbSet在EF 6中更加可嘲弄。他们还提供了关于如何模拟DbSet的文档 ,包括使用Moq的asynchronous方法。 在参与我最新的涉及Web Api的项目时,我意识到,如果我可以模拟EF,那么我可以跳过编写知识库,因为写这些知识库的正常原因是为了使testing成为可能。 阅读了一些这样的博客文章后,灵感来了… – 背景结束— 实际的问题是,遵循EF小组关于如何使用Moq DbSet的示例代码,如果在任何代码中使用.Include(),则会引发ArgumentNullException。 SO上的其他相关post 这是我的DbContext接口: public interface ITubingForcesDbContext { DbSet<WellEntity> Wells { get; set; } int SaveChanges(); Task<int> SaveChangesAsync(); Task<int> SaveChangesAsync(CancellationToken cancellationToken); } 这是我的控制器处理的主要实体 public class WellEntity { public int Id { get; set; } public DateTime DateUpdated { get; […]

无法首先将其转换为委托或expression式树types,不能将lambdaexpression式用作dynamic调度操作的参数

我正在使用.NET4.5和VS2013,我有这个查询从数据库获取dynamic结果。 dynamic topAgents = this._dataContext.Sql( "select t.create_user_id as \"User\", sum(t.netamount) as \"Amount\" from transactiondetail t where t.update_date > sysdate -7 group by t.create_user_id") .QueryMany<dynamic>(); 以下语句失败,编译错误Cannot use a lambda expression as an argument to a dynamically dispatched operation without first casting it to a delegate or expression tree type ,甚至不允许我运行它 topAgents.ToList().Select(agent => new { User = […]

一个字典中的值是一个匿名types在C#

是否有可能在C#中创build一个System.Collections.Generic.Dictionary<TKey, TValue>其中TKey是无条件的类和TValue – 一个具有一些属性的匿名类,例如 – 数据库列名称和它的本地化名称。 像这样的东西: new { ID = 1, Name = new { Column = "Dollar", Localized = "Доллар" } }

LINQ Group By并select集合

我有这个结构 Customer – has many Orders – has many OrderItems 我想通过给定一个OrderItems子集的LINQ生成一个CustomerItems列表: List of new { Customer, List<OrderItem> Items } 这是客户从项目子集中订购的所有项目的分组 我怎样才能使用LINQ来回溯通过客户订单和组来生成这个对象? 到目前为止,我在类似的东西 items .GroupBy(i => i, i => i.Order.Customer, (i, customer) => new {customer, i}) 但那显然不是一个List。 我猜我需要一个SelectMany在那里,但可以做一些指针。

如何使IEnumerable <string> .Contains不区分大小写?

假设我有一个.net数组的string。 string[] strings = new string[] { "AbC", "123", "Xyz", "321" }; 如果我想看看string数组是否包含“ABC”,我可以写 strings.Contains("ABC"); 但是,假设我想要一个函数,如果string的大写值包含“ABC”,将返回true。 我可以大写整个数组,但它看起来像.Contains方法有一些重载指定比较,但我很困惑的语法。 如何使用IEnumerable<string>.Contains()方法实现这个逻辑?

linqpad – 添加对使用自定义types的程序集的引用

是否可以添加对程序集的引用? 我在我的程序集中有一些types,我想在LINQPad中使用它们。

什么函数作为.SelectMany()在jQuery?

让我再解释一下: 我们知道jQuery中的map函数的作用是.Select()(如在LINQ中)。 $("tr").map(function() { return $(this).children().first(); }); // returns 20 tds 现在的问题是,我们如何能.SelectMany()在jQuery? $("tr").map(function() { return $(this).children(); }); // returns 10 arrays not 20 tds! 这里是我的例子: http : //jsfiddle.net/8aLFQ/4/ 如果我们select了许多,“l2”应该是8。 [注意]请不要坚持这个例子,上面的代码只是显示SelectMany()的意思,否则很容易说出$(“tr”)。 希望它是清楚的。