草庐IT

c# - LINQ to XML 可选元素查询

我正在处理一个现有的XML文档,它的结构(部分)如下:Bob1Larry我正在使用LINQtoXML查询XDocument以检索所有这些条目,如下所示:varitems=fromginxDocument.Root.Descendants("Group").Elements("Entry")selectnew{name=(string)g.element("Name").Value,id=g.Elements("ID").Count()>0?(string)g.Element("ID").Value:"none"};“ID”元素并不总是存在,所以我的解决方案是上面的Count()爵士乐。

c# - LINQ 和 AutoMapper

我想知道我是否可以做些什么来让它按预期工作。这在我的代码中运行良好:varroles=_securityContext.Set();varroleList=newList();foreach(varroleinroles){roleList.Add(Mapper.Map(role));}returnroleList;但将其更改为:varroles=_securityContext.Set();returnroles.Select(role=>Mapper.Map(role)).ToList();导致我以前从未见过的错误:“LINQtoEntities无法识别‘Security.Dto.

c# - 现有的类似于Parallel.For的LINQ扩展方法?

这个问题在这里已经有了答案:关闭9年前。PossibleDuplicate:LINQequivalentofforeachforIEnumerableienumerable的linq扩展方法非常方便……但如果您只想对枚举中的每个项目应用一些计算而不返回任何内容,那么就没那么有用了。所以我想知道也许我只是错过了正确的方法,或者它是否真的不存在,因为如果它可用的话我宁愿使用内置版本......但我还没有找到一个:-)我可以发誓某处有一个.ForEach方法,但我还没有找到它。与此同时,我确实编写了自己的版本以防它对其他人有用:usingSystem.Collections;usingSys

c# - 加入期间的 LINQ 在线属性更新

我有两个对象,A和B用于此讨论。我可以通过公共(public)关系或外键连接这些对象(表)。我正在使用linq来执行此连接,我只想在我的结果集中返回ObjectA;但是,我想在连接期间使用来自ObjectB的数据更新ObejctA的属性,以便我从LINQ查询中获得的ObjectAs与其在所选存储介质中的原始状态“略有”不同。这是我的查询,您可以看到我只是希望能够执行类似objectA.SomeProperty=objectB.AValueIWantBadly的操作我知道我可以在我的选择中做一个新的并启动新的OBjectAs,但我想尽可能避免这种情况并简单地更新一个字段。returnfr

c# - 使用 Linq 与自定义 IEqualityComparer 相交

长话短说:我有2个对象集合。一个包含良好的值(我们称之为“Good”),另一个包含默认值(Mr.“Default”)。我想要Good和Default以及Default之间的并集的交集。换句话说:相交(联合(好,默认),默认)。人们可能认为它解析为默认值,但这里是它变得棘手的地方:我使用自定义IEqualityComparer。我有以下类(class):classMyClass{publicstringMyString1;publicstringMyString2;publicstringMyString3;}classMyEqualityComparer:IEqualityCompar

c# - LINQ to Entities 无法识别方法 'Int32 ToInt32(System.Object)' 方法,并且无法将此方法翻译成存储表达式

这是我正在尝试做的事情:publicListGetRolesForAccountByEmail(stringemail){varaccount=db.Accounts.SingleOrDefault(a=>a.Email==email);if(account==null)returnnewList();returndb.AccountRoles.Where(a=>a.AccountId==account.AccountId).Select(a=>Convert.ToInt32(a.RoleId)).ToList();}我必须转换为Int32,因为我无法返回List当方法返回List时.

c# - 使用 LINQ 计算乘积

我正在学习LINQ,有一个非常简单的问题,我认为它可以帮助我更好地理解这项技术。如何找到整数数组的乘积?例如,LINQ的方式是怎样做的:int[]vals={1,3,5};returnvals[0]*vals[1]*vals[2]; 最佳答案 这会起作用:varproduct=vals.Aggregate(1,(acc,val)=>acc*val);您从1的种子开始,然后使用两个参数为您的每个值调用该函数,acc是当前的累加值,以及val是数组中的值;该函数将当前累加值乘以数组中的值,并将该表达式的结果作为acc传递给下一个函数。即

c# - LINQ - GroupBy 一个键,然后将每个分组的项目放入单独的 'buckets'

我有一个这样的项目列表:publicclassItem{publicintItemId{get;set;}publicstringItemName{get;set;}publicintListId{get;set;}}1测试112测试213测试314list25List226测试37测试238测试33有没有办法让我按ListId分组并将它们放入每个单独的桶中,​​即ListId1桶将包含所有ListId==1。该列表是从SQL动态返回的,所以我事先不知道会有多少ListId。 最佳答案 您可以使用GroupBy:vargroups=

c# - 使用 LINQ 获取列表中的所有对

如何在列表中获取所有可能的项目对(顺序不相关)?例如如果我有varlist={1,2,3,4};我想得到这些元组:varpairs={newTuple(1,2),newTuple(1,3),newTuple(1,4),newTuple(2,3),newTuple(2,4)newTuple(3,4)} 最佳答案 对cgeers答案进行轻微的重新表述,以获得您想要的元组而不是数组:varcombinations=fromitem1inlistfromitem2inlistwhereitem1(如果需要,请使用ToList或ToArray

c# - 多个 OfType Linq?

我有一个linq查询,它选择占位符中的所有文本框并使用结构将它们添加到列表中。我需要扩展此功能以同时获取DropDownList的选定值我很确定我做错了,因为当我调试该方法时,列表计数为0。我自己的猜测是声明2OfType()是错误的,但我是linq的新手,我不知道该怎么做。任何帮助都会很棒!提前致谢。这是我目前所拥有的:publicstructcontent{publicstringname;publicstringmemberNo;publicintpoints;publicstringcarclass;}Listrows=newList();protectedvoidLinkBu