草庐IT

c# - 使用 linq 选择一个父属性和所有子属性

我有一个部分的集合,每个部分都有一个问题的集合。如果我想选择所有部分下的所有问题,这行得通Sections.SelectMany(s=>s.Questions)但现在我还想要节号。所以如果我尝试这样的事情Sections.SelectMany(s=>s.Questions,s.SectionNumber)它抛出编译错误。我如何使它工作? 最佳答案 你应该在这里使用匿名类型:Sections.SelectMany(s=>s.Questions,(s,q)=>new{Question=q,s.SectionNumber})

c# - Linq 语句中的正则表达式?

我正在编写一个简短的C#来解析给定的XML文件。但是其中1个标记值可以更改,但始终在where子句中包含单词“FastStartup”(不考虑大小写和空格,但需要顺序相同)。我不确定如何在C#中的类似sql的语句中执行此操作。varselected=fromcliindoc.Descendants(xmlns+"Result")wherecli.Element(xmlns+"ResultsLocation").Value=="Assessments-Fast-Startup"selectcli; 最佳答案 假设您正在寻找确切的字符串

c# - LINQ To Entities Include + Where 方法

我有NxN表,想象一下:User(id,...)地址(id,...)UserAddresses包含用户和地址的外键。据我所知,EntityFramework用户创建的实体包含一个UserAddresses集合。Address包含UserAddresses的集合,一个特定的UserAddress包含对User和一个Address的引用。现在我想通过linq进行下一个查询。对于特定的用户ID,仅获取启用标志设置为true的userAddresses。对于特定的用户ID,userAddresses可以包含多个条目,但仅为该特定用户设置一个。我可以做的查询是:context.User.Incl

c# - Linq:GroupBy 与 Distinct

我一直在尝试让Linq查询从集合中返回不同的值。我找到了两种解决方法;使用GroupBy或Distinct。我知道Distinct是为这项工作而设计的,但我必须在对象上实现IEquatable。我尝试了GroupBy,效果很好。我想知道使用Distinct与GroupBy是否具有明显的性能优势。 最佳答案 Distinct()将比较集合中的整个对象(对于引用类型,您需要覆盖GetHashCode和Equals)。它将枚举项目并将它们添加到集合中。简单快捷。像这样的东西:Setset=newSet(comparer);foreach(

c# - VB.Net 和 C# 之间 LINQ 语法的差异

Again,只是出于好奇:在我用VB.Net编写了几个项目后,我惊讶地发现C#和VB.NETLINQ用法之间存在一些不仅仅是细微的差别。例如,如果我们想通过多个属性(列)对元素进行分组,我们需要显式地创建一个新的匿名类型:varprocs=fromcinProcess.GetProcesses()groupcbynew{c.BasePriority,c.Id}intodselectd;而在VB.NET中,更直接的语法已经可以做到:Dimb=FromcInProcess.GetProcesses()GroupcByc.BasePriority,c.IdIntoGroupSelectGro

c# - 使用 LINQ ForEach() 异步等待

我有以下正确使用异步/等待范式的代码。internalstaticasyncTaskAddReferencseData(ConfigurationDbContextcontext){foreach(varsinkNameinRequiredSinkTypeList){varsinkType=newSinkType(){Name=sinkName};context.SinkTypeCollection.Add(sinkType);awaitcontext.SaveChangesAsync().ConfigureAwait(false);}}如果我不使用foreach(),而是想使用LIN

c# - Entity Framework 与 LINQ 聚合连接字符串?

这对我来说在TSQL中很容易执行,但我只是坐在这里用头撞table试图让它在EF4中工作!我有一张表,我们称它为TestData。它有字段,比如:DataTypeID、Name、DataValue。DataTypeID,Name,DataValue1,"Data1","Value1"1,"Data1","Value2"2,"Data1","Value3"3,"Data1","Value4"我想对DataID/Name进行分组,并将DataValue连接成一个CSV字符串。期望的结果应该包含-DataTypeID,Name,DataValues1,"Data1","Value1,Valu

c# - 如何使用 Linq 检查字符串列表是否包含列表中的任何字符串

我正在构造一个linq查询,它将检查数据库中的字符串是否包含字符串列表中的任何字符串。类似的东西。query=query.Where(x=>x.tags.Contains(--anyoftheitemsinmylistofstrings--));我还想知道列表中有多少项是匹配的。如有任何帮助,我们将不胜感激。更新:我应该提到标签是一个字符串而不是列表。在查询实际运行之前,我添加了一些与标签无关的位置。这是针对EntityFramework运行的。 最佳答案 编辑:这个答案假设tags是一个字符串集合...听起来你可能想要:varli

c# - 在 Linq 查询中执行代码块的语法?

这是一些(显然)无法编译的代码:varq=fromxinmyAnonymousTypeCollectionselectnew{x.ID,CalcField={switch(x.SomeField){case1:returnMath.Sqrt(x.Field1);case2:returnMath.Pow(x.Field2,2);default:returnx.Field3;}}};你明白了;我正在尝试计算CalcField以完全不同的方式,取决于SomeField的值是。我不能使用Func(或者我可以吗?),因为输入类型是匿名的。那么让它工作的正确语法是什么?

c# - 我可以使用 Linq 从 IEnumerables 构建元组吗?

我有两个IEnumerables,我想构建一个IEnumerable的Tuple从。Item1的Tuple应该是项目的索引,Item2第一个集合中第index个位置的值,以及Item3第二个集合中第index个位置的值。这在Linq中可以轻松完成吗?例如varfirst=newList(){10.0,20.0,30.0};varsecond=newList(){1.0,2.0,3.0};varresult=TupleBuild(first,second);//result={(0,10.0,1.0),(1,20.0,2.0),(2,30.0,3.0)}哪里:IEnumerable>Tu