草庐IT

LINQ_ENABLED

全部标签

c# - 使用 LINQ 返回不同的 IQueryable?

我正在编写一个函数,该函数使用LINQ从数据库中提取记录以获取IQueryable。此LINQ语句将提取特定时间段内活跃用户的所有记录,然后将用户ID、名字和姓氏输出到TelerikRadGrid。我的问题在于在拉取此数据时尝试在UserID上获取不同的值。我尝试重新编写此代码以获得我的结果。这是提取所有数据的代码示例,其中Distinct不工作。publicstaticIQueryableGetActiveEmployees_Grid(stringPeriod){DataContextData=newDataContext();varEmployees=(fromcinDataSys

c# - 使用Linq查找集合中指定元素之后的元素

我有一个有序的人员列表。我知道那个收藏中有一个人。我如何确定列表中的下一个人? 最佳答案 你可以这样做:IEnumerablepersons=..varfirstPersonAfterJack=persons.SkipWhile(p=>p.Name!="Jack").ElementAt(1);//Zero-indexed,meanssecond想法是生成一个序列,导致跳过元素直到满足条件,然后取那个序列的第二个元素。如果不能保证查询会返回结果(例如,永远找不到匹配项,或者是序列的最后一个元素),您可以将ElementAt替换为Ele

c# - LINQ to SQL ForeignKeyReferenceAlreadyHasValueException 错误

当我尝试更改外键时会生成此错误。我知道这是一个非常常见的错误,我已经找到了大量关于它的信息并尝试实现我找到的修复程序,但在尝试更新key时我仍然遇到此错误。ReferenceThread本来我只是直接赋值,并没有试图映射实体。ticket.assigned_to_group=assigned_to从那以后,我开始尝试绘制我认为正确答案的实体;但是我仍然收到错误。ticket.assigned_to_group=db.sub_units.Single(f=>f.id==assigned_to).id;知道为什么这行不通。此外,如果我有一个包含多个外键的表,我真的需要为每个键执行新查询还是

c# - 如何使用 LINQ 从实体加载最后一条记录?

我想从最后一条记录中获取名为“Gram”的字段的值,并将其值放入一个变量中,而不使用任何条件。第一次尝试intvalue=int.Parse(Entity.TblGold.LastOrDefault().Gram.ToString());第二次尝试intvalue=int.Parse(Entity.TblGold.Select(p=>p.Gram).Last().ToString());我刚刚收到这个异常:LINQtoEntitiesdoesnotrecognizethemethod'DataModel.TblGoldLastOrDefault[TblGold](System.Linq

c# - 如何编写 Linq 表达式?即 Func<Exp<Func<X, Y>>, Exp<Func<Y, Z>>, Exp<Func<X, Z>>>

我正在创建一个Validator类(class)。我正在尝试实现LinqSelectMany我的验证器的扩展方法能够使用Linq查询组合表达式并验证最终结果,即使基础值发生变化也是如此。下面的测试代码展示了我的意图。vara=2;varb=3;varva=Validator.Create(()=>a,n=>n>=0&&nb,n=>n>=0&&n我看到了以下问题HowdoIcomposeexistingLinqExpressions这告诉我如何组成两个Func一起使用And表达式,但我需要能够以更有效的方式将函数组合在一起。例如,我有以下两个表达式:publicExpression>Va

c# - Dictionary<TKey, TValue> 是否比 List<T> 上的 LINQ 更快?

我一般用List用于收藏。但是如果我需要快速查找一个集合,那么例如在下面的示例中,我将使用字典,以便我可以通过id快速查找它:Dictionary但是因为我可以使用LINQ来查询List无论如何,如下所示,是否有任何理由去解决使用字典而不是列表的麻烦?是字典更快还是LINQ在幕后做了一些使其同样快的事情?usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;namespaceConsoleApplication1{classProgram{staticvoidMain(string[]

c# - 将两个 Linq 查询的结果组合成一个 Var?

我有两个不同的数据库,其中包含两个设计完全相同的表。如何最有效地组合这两个查询的结果?我知道我可以将每个结果放入字典或数组或其他任何东西中,但我想有一种更简单的方法可以做到这一点。vardb1=//Adatabaseobjectconnectedtodatabase1vardb2=//Adatabaseobjectconnectedtodatabase2varresult1=db1.table.where(a=>a.value>0);varresult2=db2.table.where(a=>a.value>0);varresultSum=result1+result2;//???谢谢

c# - 使用 LINQ 创建一个 List<T> 其中 T : someClass<U>

这与我之前的一个问题有关C#GenericListconversiontoClassimplementingList我有以下代码:publicabstractclassDataField{publicstringName{get;set;}}publicclassDataField:DataField{publicTValue{get;set;}}publicstaticListConvertXML(XMLDocumentdata){result=(fromdinXDocument.Parse(data.OuterXML).Root.Decendendants()selectnewDa

c# - 使用 LINQ Average() 方法处理空结果

我是LINQ的新手并试图从表格到图表创建一些数据点。此表中的三个重要字段是id、时间和值。我正在编写一个查询以获取所选ID在设定时间内的平均值。我编写的LINQ如下:varvalue=(fromtin_tablewheret.Id==id&&t.Time>=intervalStartTime&&t.Time但是这会在运行时崩溃:"ThenullvaluecannotbeassignedtoamemberwithtypeSystem.Decimalwhichisanon-nullablevaluetype.."在某些时间间隔内没有数据,因此SQLLINQ生成返回null,我希望将其合并为

c# - 在集合 : LINQ 中查找下一条记录

我有一个对象列表,它们都有一个id属性例如1,10,25,30,4我有一个currentId,我需要在列表中找到下一个Id因此,例如当前Id设置为25,我需要返回id为30的对象。之后的对象将是4。我如何在LINQ中优雅地执行此操作?编辑列表按“排序”属性排序。所以你不能只按id排序,因为那样会弄乱顺序。 最佳答案 无需重新排序(请注意,我稍微编辑了一下,因为我认为我误读了问题):int[]data={1,10,25,30,4};intlast=25;varnext=data.SkipWhile(i=>i!=last).Skip(1