草庐IT

LINQ_ENABLED

全部标签

c# - 如何通过 LINQ 展平树?

所以我有简单的树:classMyNode{publicMyNodeParent;publicIEnumerableElements;intgroup=1;}我有一个IEnumerable.我想获得所有MyNode的列表(包括内部节点对象(Elements))作为一个平面列表Wheregroup==1.如何通过LINQ做这样的事情? 最佳答案 你可以像这样压扁一棵树:IEnumerableFlatten(IEnumerablee)=>e.SelectMany(c=>Flatten(c.Elements)).Concat(new[]{e

c# - LINQ 中的 LIKE 运算符

有什么方法可以在类似于SQL的LIKE运算符的C#LINQ表达式中比较字符串?假设我有一个字符串列表。在此列表中,我想搜索一个字符串。在SQL中,我可以这样写:SELECT*FROMDischargePortWHEREPortNameLIKE'%BALTIMORE%'查询需要linq语法而不是上面的语法。usingSystem.Text.RegularExpressions;…varregex=newRegex(sDischargePort,RegexOptions.IgnoreCase);varsPortCode=Database.DischargePorts.Where(p=>re

c# - 在 MatchCollection 上使用 LINQ 扩展方法语法

我有以下代码:MatchCollectionmatches=myRegEx.Matches(content);boolresult=(fromMatchminmatcheswherem.Groups["name"].Value.Length>128selectm).Any();有没有办法使用LINQ扩展方法语法来做到这一点?像这样:boolresult=matches.Any(x=>...); 最佳答案 usingSystem.Linq;matches.Cast().Any(x=>x.Groups["name"].Value.Len

c# - 如何使用 linq to sql 一次更新多行?

表格:iduseridfriendidnamestatus112venkatfalse213saitrue314arunfalse415arjunfalse如果用户发送userid=1,friendids=2,4,5status=true我将如何编写查询来更新以上内容?所有friendids状态为真。[一次2、3、4]? 最佳答案 要更新一列,这里有一些语法选项:选项1varls=newint[]{2,3,4};using(vardb=newSomeDatabaseContext()){varsome=db.SomeTable.Wh

c# - LINQ - 将列表转换为值为列表的字典

我有一个List我从数据库中检索到的。但是,为了分组目的,我希望它由MyObject中的属性键入。使用LINQ将我的列表转换到的最佳方式是什么:Dictionary>我有以下内容:myObjectList.ToDictionary(x=>x.KeyedProperty)但它返回:Dictionary 最佳答案 听起来您想对MyObject进行分组实例KeyedProperty并将该分组放入Dictionary>.如果是这样,请尝试以下操作Listlist=...;varmap=list.GroupBy(x=>x.KeyedPrope

c# - 使用 Linq to Entities 的“Contains()”解决方法?

我正在尝试创建一个查询,该查询使用where子句中的id列表,使用SilverlightADO.Net数据服务客户端api(因此使用LinqToEntities)。有谁知道不支持Contains的解决方法?我想做这样的事情:ListtxnIds=newList();//Filllistvarq=fromtinsvc.OpenTransactionwheretxnIds.Contains(t.OpenTransactionId)selectt;试过这个:varq=fromtinsvc.OpenTransactionwheretxnIds.Any(tt=>tt==t.OpenTransac

c# - "LINQ to Entities", "LINQ to SQL"和 "LINQ to Dataset"有什么区别

我使用LINQ已经有一段时间了。然而,所提到的LINQ风格之间的真正区别仍然是一个谜。成功的答案将包含它们之间的简短区别。每种风格的主要目标是什么,有什么好处,是否会对性能产生影响...附言我知道那里有很多信息源,但我正在寻找一种“备忘单”,它可以指导新手朝着特定目标前进。 最佳答案 它们都是LINQ-语言集成查询-因此它们都有很多共同点。所有这些“方言”基本上都允许您从各种来源进行查询式数据选择。Linq-to-SQL是Microsoft首次尝试ORM-Object-RelationalMapper。它仅支持SQLServer。它

c# - 如何有条件地应用 Linq 运算符?

我们正在开发日志查看器。使用将可以选择按用户、严重性等进行过滤。在SQL时代,我会添加到查询字符串中,但我想使用Linq来完成。如何有条件地添加where子句? 最佳答案 如果你想只在特定条件通过时进行过滤,做这样的事情varlogs=fromlogincontext.Logsselectlog;if(filterBySeverity)logs=logs.Where(p=>p.Severity==severity);if(filterByUser)logs=logs.Where(p=>p.User==user);这样做将使您的表达式

c# - Linq 语法 - 选择多列

这是我用于实体模型的Linq语法IQueryableobjEmployee=null;objEmployee=fromresin_db.EMPLOYEEswhere(res.EMAIL==givenInfo||res.USER_NAME==givenInfo)selectres.EMAIL;如何选择多个列?就像我也想选择res.ID一样。我怎样才能收到那些?我认为IQueryable不起作用。这称为LinqtoSQL-对吗? 最佳答案 正如其他答案所指出的,您需要使用匿名类型。就语法而言,我个人更喜欢方法链接。等效的方法链接是:-v

c# - LINQ Distinct 运算符,忽略大小写?

给定以下简单示例:Listlist=newList(){"One","Two","Three","three","Four","Five"};CaseInsensitiveComparerignoreCaseComparer=newCaseInsensitiveComparer();vardistinctList=list.Distinct(ignoreCaseComparerasIEqualityComparer).ToList();看起来CaseInsensitiveComparer实际上并未用于进行不区分大小写的比较。换句话说,distinctList包含与list相同数量的项目