【c# – 由具有不同Where条件的两个字段分组和汇总数据】教程文章相关的互联网学习教程文章

c# – LINQ中的速度提升Where(Array.Contains)【代码】

我最初有一个包含返回int []的LINQ查询的方法,后来以类似于以下的方式使用它:int[] result = something.Where(s => previousarray.Contains(s.field));事实证明这是非常缓慢的,直到第一个数组被检索为本机IQueryable< int>.它现在运行得非常快,但是我想知道如果我从其他地方提供了一个int []然后必须如上所述使用它我将如何处理这种情况. 在这种情况下有没有办法加快查询速度?转换为列表似乎没有帮助.解决方法:在LINQ-SQL中,Cont...

c# – 为什么我会使用限制为仅限一种类型的where约束?【代码】

所以我在这里查看MSDN示例:Constraints on Type Parameters (C# Programming Guide)和第一个示例显示了以下通用类定义具有单个具体类型的where约束:Employeepublic class GenericList<T> where T : Employee现在当使用where约束时,我完全理解定义>时的用法1类型,或者当使用接口时最肯定.然而(我知道这只是一个例子),为什么我只想用where约束来限制一个具体的类型呢?我不能只替换下面的代码:public T FindFirstOccurrence(strin...

c# – List.Where哪里不会出现在intellisense中【代码】

我正在读Jon Skeet的书,他提供了一个很好的例子:List<Product> products = Product.GetSampleProducts();foreach (Product product in products.Where(p => p.Price > 10)) {Console.WriteLine(product); }这对我来说似乎很简单.但是,当我尝试做同样的事情时,Where不会出现在intellisense中.我错过了什么吗?它看起来一样.List<lead> prospects = GetAllProspects();foreach (lead prospect in prospects) {}解决方法:添加对Syste...

c# – LinQ WHERE string.Contains或string.IndexOf?【代码】

我需要写一些可以得到相同结果的东西:var result = collection.Where( o => o.Name.IndexOf( "some_string2" ) != -1 || o.Name.IndexOf( "some_string_2" ) != -1 || o.Name.IndexOf( "some_string3" ) != -1 )要检查的字符串的数量和值(some_string_1,2和3)是未知的(来自DB),所以更通用的… 我试过以下,但失败了……var stringsToCheck = someCommaSeparatedStrings.ToLower().Split( ',' ).ToList(); var result = collection....

c# – 使用嵌套实体上的Where子句的实体框架【代码】

我正在尝试使用以下内容过滤检索中的子对象var loanExtractExample = be.LoanCategoryMonitors.Where(lcm => lcm.LoanNumber == 5000435).Include(l => l.Loan).Include(le => le.LoanExtracts).Select(le => le.LoanExtracts.Borrowers.Where(b => b.BorrowerNum == 1)).ToList();但是当我查看实体收藏时,有2个借款人.一个是BorrowerNum 1,一个是BorrowerNum = 3. 我错过了什么能够将借款人减少到正确的借款人?解决方法:我相信借...

在where子句LINQ PHP中发送变量【代码】

对于PHP中的LINQ,我使用了https://github.com/Athari/YaLinqo 我不知道如何在where子句中传递变量.public function filter($arr, $find) {Enumerable::from($arr)->where(function($val) { return stripos($val->item, $find) > -1; })->toArray(); }似乎没有像$find那样定义,但我将它作为方法的参数发送.解决方法:你可以使用use语句:Enumerable::from($arr)->where(function($val) use ($find) {return stripos($val->item, $fin...

c# – 如何在选择视图模型时在IQueryable中添加新的where条件?【代码】

我对C#和.Net相当新,所以如果事情没有意义,我会道歉,我会尽力解释我的问题. 我有两种方法,基本上将使用类似的查询但略有不同.因此,我没有在两个方法中重复查询,而是创建了第三个私有方法,它将返回查询的公共部分,然后函数可以根据需要在查询中添加更多子句. 这是一个泛型函数,它返回IQueryable对象和查询的公共部分private IQueryable<OfferViewModel> GetOffersQueryForSeller(int sellerId) {return Db.Offers.Where(o => o.Sku....

c# – 当在Linq语句中使用Where子句时,产生的结果与在外部使用时产生的结果不同【代码】

我有以下声明:List<string> tracks = new List<string> { "ABC", "DEF" }; var items = (from i in Agenda.AgendaSessionsselect i).Where(p => p.Tracks.Any(s => tracks.Contains(s.Code)));这将返回所有跟踪包含ABC或DEF的会话,现在当我重写下面的语句时,它会返回所有会话,如果该子句始终为真,那么有人可以对此有所了解吗?var items = from i in Agenda.AgendaSessionswhere i.Tracks.Any(s=> tracks.Contains(s.Code))select...

c# – 具有动态属性的WhereIn【代码】

我想构建LINQ,稍后将转换为sql中的WHERE IN.在常规用例中我会这样做: (可以使用IQuerable< T>并且arr是IEnumerable< int>)querable = querable.Where(e => arr.Contains(e.Id));但 我的问题是我想要过滤的值(e.Id)是动态的,我把它作为一个字符串.我怎样才能做到这一点? 更多背景:我正在做REST API端点,用户可以通过哪个列发送他想要过滤的值,所以示例如下: > filter:{“id”:[1,2]} 我希望将其翻译成queryable.Where(e => ne...

c# – EFCore枚举到where子句中未使用的字符串值转换【代码】

我有一个问题,我的Linq where子句如何被转换为Sql. 我正在使用EnumToStringConverter将我的实体的属性(枚举)映射到文本数据库列.只需从DbContext查询我的实体,这一切都正常. 然后我开始使用LinqKit和Expressions来获得可重用的过滤器.我创建了一个接受我的实体的Expression,并根据对实体其他属性的一些计算给出了我的枚举.我会尝试用代码解释自己,因为单词让我失望.我会写一个例子,所以我不必发布完整的代码,但逻辑将是相同的.您可...

c# – CRM 2011 LINQ:’where’条件无效.实体成员正在调用无效的属性或方法【代码】

我正在运行以下LINQ查询,但它抛出一个错误,说“无效”,其中’条件.实体成员正在调用无效的属性或方法.“ 任何人都可以建议我为什么会这样.如果我从WHERE中删除conn.Record2Id.LogicalName.Equals(“account”),它会返回结果,但我可以在快速查看中看到LogicalName = account.var connections = (from conn in context.CreateQuery<Connection>() where (conn.Record1Id.Id.Equals(incidentId) && conn...

c# – 在单个查询中根据条件(“where”)对数据进行分区?【代码】

我有一些数据需要根据某些条件进行分区,即:var trues = from item in items where MyCondition(item, blah) select item; var falses = from item in items where !MyCondition(item, blah) select item;有没有更简洁的方法在单个查询中执行此操作并获得两个结果,以便我不必重复自己(并最终迭代数据两次),如上所述?解决方法:如果您不想对数据进行两次迭代,则必须创建一个包含真值的LINQ查询和一个假值以及它们所属的组的指示符...

c# – 带有where子句的泛型所需的显式强制转换【代码】

我希望有人可以建议一种方法来避免下面的“var o3”语句的显式转换.似乎编译器应该有足够的信息来隐式转换.using System.Collections.Generic;namespace Sample {public interface IPoint {double X { get; }double Y { get; }}public class Line<T> :List<T> where T:IPoint {}public class Graph<T> where T :IPoint {public Line<IPoint> Line1;public Line<T> Line2;public Graph() {var o1 = new Other(Line1); //worksvar o2...

c# – LINQ查询可以将对象类型属性与where条件中的另一个对象匹配【代码】

我有一个对象BankAccount,我想在LINQ查询中检查匹配. 还有另一个对象LenderAccount,它引用了BankAccount实体. 最后一个对象LoanConnection引用了LenderAccount.我正在寻找具有特定BankAccount的所有连接. 以下是代码:var bankAccount = accountService.GetBankAccountById(1); var lenderCons = lenderConnectionService.List().Where(c => c.LenderAccount.BankAccount == bankAccount).ToList();以上查询似乎有效.但我想在LINQ中...

c# – 由具有不同Where条件的两个字段分组和汇总数据【代码】

我有一个带有如下样本数据的数据表.UserName IsBillable Hours ----------------------------- user1 Yes 10 user2 Yes 15 user3 No 20 user1 Yes 25 user1 No 15 user2 Yes 10我想按IsBillable进行分组并将其与小时列相加.UserName Billable NonBillable ----------------------------- user1 35 ...