草庐IT

c# - 具有匿名类型和用户定义类型的 LINQ 选择查询

匿名类在C#中具有只读属性。这通常用于在linqselect查询中声明以从数据库中获取特定值。在我的代码中,我有以下查询。让我困惑的是使用new语句选择匿名类的新对象。我有一个模型类StudentClerkshipsLogModel。当我使用模型名称时,查询结果允许编辑。varquery=(fromentityin_tblStudentClerkshipsLog.GetQueryable()whereentity.StudentID==intStudentIDselectnewStudentClerkshipsLogModel{StudentClerkshipID=entity.Stu

C# 对具有相同类型的不同属性重新使用 LINQ 表达式

我有一个类(class)有几个int属性:classFoo{stringbar{get;set;}inta{get;set;}intb{get;set;}intc{get;set;}}我有一个LINQ表达式,我希望在List上使用.我希望能够使用此表达式通过查看三个属性中的任何一个来从列表中过滤/选择。例如,如果我按a过滤:returnlistOfFoo.Where(f=>f.a>=0).OrderBy(f=>f.a).Take(5).Select(f=>f.bar);但是,我希望能够使用f.a中的任何一个来做到这一点。,f.b,或f.c.我不想重新键入LINQ表达式3次,而是希望有一

c# - 使用 LINQ 将 DataRow 转换为字典

我需要使用LINQ将DataRow转换为Dictionary。下面的代码将获取DataRow,下一步是我需要将其转换为字典(ColumnName,RowVale)varWorkWeekData=fromdatainmWorkWeekData.AsEnumerable()wheredata.Field("Code")==codeselectdata; 最佳答案 这绝对有可能,是的:vardict=row.Table.Columns.Cast().ToDictionary(c=>c.ColumnName,c=>row[c]);

c# - 方法 'Skip' 仅支持 LINQ to Entities 中的排序输入

是什么导致了这个问题?publicActionResultIndex(intpage=0){constintpageSize=3;varareas=repo.FindAllAreas();varpaginatedArea=newPaginatedList(areas,page,pageSize);returnView(paginatedArea);}usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;namespaceUTEPSA.Controllers{classPaginated

c# - Linq:TimeSpan 中 2 个 DateTime 之间的差异

我正在尝试这样做:Tickets.Where(t=>(t.Date-myTicket.Date)我收到“DbArithmeticExpression参数必须具有数字通用类型”错误。考虑到我需要TimeSpan的差异,我该怎么做?提前致谢。 最佳答案 你会想要使用SqlFunctions.DateDiffTickets.Where(t=>SqlFunctions.DateDiff("second",t.Date,myTicket.Date) 关于c#-Linq:TimeSpan中2个Dat

c# - 我可以在 Linq Comparable 中使用 TryParse 吗?

一种:Documenti=Documenti.OrderBy(o=>string.IsNullOrEmpty(o.Note)).ThenBy(o=>Int32.TryParse(o.Note)).ToList();如果o.Note是“”或不是int,那将“忽略”(不是顺序,放在末尾)。我该怎么做? 最佳答案 所有使用C#7或更新版本的人都滚动到底部,其他人都可以阅读原始答案:是的,如果您将正确的参数传递给int.TryParse,您可以.两个重载都将int作为out参数,并在内部使用解析后的值对其进行初始化。所以像这样:intnot

c# - 使用 LINQ 从 C# 中的泛型列表中过滤值的最简单方法

我有两个类(class)。第一个是Person,第二个是Student(继承自Person)。我想过滤一个通用的List并找到所有成绩高于7的Students。我提出了以下解决方案:classPerson{publicstringName{get;set;}}classStudent:Person{publicdecimalGrade{get;set;}}classProgram{staticvoidMain(string[]args){Listpeople=newList();people.Add(newPerson(){Name="John"});people.Add(newStu

c# - 使用 LINQ 排序后获取集合中项目的新索引

我想在C#中对列表(或数组)进行排序,并希望为未排序列表中的每个项目保存新索引。即:A=231sorted(A)=123indexes=120我在Stackoverflow上读到LINQ特别有用,但我找不到具体的操作方法。 最佳答案 注意事项:我犯了一个错误,误读了OP的问题(这让我很尴尬,收到了这么多赞成票)。我希望(理想情况下)OP接受其他答案之一是正确的。为了公平对待投票者并本着SO的精神,我将修改此答案以使其正确。一个人可以携带两种扩展方法,一种用于旧索引,一种用于新索引(这是OP想要的)。publicstaticIEnum

c# - 使用 LINQ 查询 XDocument 的最佳方式?

我有一个XML文档,其中包含一系列如下所示的项目节点:XYZloremipsum123AdamSavage90210我想将它LINQ成这样的匿名类型:varmydata=(fromrootindocument.Root.Elements("item")selectnew{label=(string)root.Element("label"),description=(string)root.Element("description"),id=...,name=...,zip=...});根据“类型”属性的值提取每个参数类型的最佳方法是什么?由于有许多参数元素,您最终得到了root.El

c# - 在linq中使用之前如何检查null?

我有一个对象列表,其中包含另一个对象。ListmyClass=newList();我想像这样做一些linqmyClass.Where(x=>x.MyOtherObject.Name="Name").ToList();有时“MyOtherObject”为空。我该如何检查? 最佳答案 很简单,只需添加一个AND子句来检查它是否不为空:myClass.Where(x=>x.MyOtherObject!=null&&x.MyOtherObject.Name="Name").ToList(); 关