Tag: linq

如何从XDocument获取子节点的值

我需要使用linq从XDocument获取子节点的值 1234 123 Main street AL 我试过这个: xDocTest.Root.Elements(“Cust”).Elements(“ACTNumber”) 如果我尝试使用Address而不是ACTNumber,那么它可以工作。 但它没有给出子节点值。

使用LINQ for Entity Framework将实体强制转换为通用方法中的已实现接口

我有一个通用的方法来查询EF中TEntity类型的对象。 我想在TEntity实现特定接口的情况下将条件添加为where子句。 我的方法是: public TEntity GetByUserID(Guid userID) { var query = this.DbSet; if (typeof (TEntity).IsImplementationOf()) { query = query .Where((x => !((IDeletableEntity)x).IsDeleted); } return query .FirstOrDefault(x => x.UserID == userID); } IsImplementationOf ()是一个方法,它只是返回true / false,顾名思义。 当我为实现IDeletableEntity的实体地址运行它时,我收到一个错误: 无法将类型“地址”强制转换为“IDeletableEntity”。 LINQ to Entities仅支持转换EDM原语或枚举类型。 任何想法我如何解决这个LINQ的限制?

将两个列表与不同的对象相交

我有一个ObjA和ObjB列表如下: List List1; List List2; ObjA和ObjB都有一个公共字段,即User,我希望基于User.Id将它们相交。 class ObjA { User user; …. other properties } class ObjB { User user; …. other properties } class User { int Id; …. other props } 如何将这两个列表与Linq上的User.Id相交? 因此,我只想要用户列表。

是否有LINQ等效的string.Join(string,string )

有没有办法使用LINQ将对象集合转换为单个新对象? 我想在另一个LINQ to SQL表达式中使用它。

LINQ的可枚举方法是否维持元素的相对顺序?

假设我有List foos ,其中元素的当前顺序很重要。 如果我然后应用LINQ Enumerable方法,如GroupBy , Where或Select ,我可以依赖生成的IEnumerable以与原始列表相同的相对顺序进行迭代吗?

使用LINQ时,&&和多个where子句之间有什么区别?

我是LINQ的新手,昨天发现你可以有多个where子句,例如: var items = from object in objectList where object.value1 10 select object; 或者你可以写: var items = from object in objectList where object.value1 10 select object; 两者有什么区别?

层次结构问题 – >用Linq Join替换递归?

我有一个自引用表,它有ID,ParentID(可空)。 因此,该表包含许多节点,每个节点可以是层次结构中的根(父级为空),或层次结构的任何级别(父级存在于表中的其他位置)。 给定一个任意的起始节点,是否有一个优雅的linq查询,它将从该节点返回层次结构的所有子节点? 谢谢。

Linq:GroupBy vs Distinct

我一直在尝试获取Linq查询以从集合中返回不同的值。 我发现了两种方法; 使用GroupBy或Distinct。 我知道Distinct是为这个工作做的,但我必须在对象上实现IEquatable。 我尝试了GroupBy,这很好用。 我想知道使用Distinct vs GroupBy是否具有明显的性能优势。

使用LINQ查找C#中数字数组的累积和

我有一个包含双精度的csv字符串(例如“0.3,0.4,0.3”),我希望能够输出一个包含这些数字累积和的双数组(例如[0.3,0.7,1.0])。 到目前为止,我有 double[] probabilities = textBox_f.Text.Split(new char[]{‘,’}).Select(s => double.Parse(s)).ToArray(); 它将数字作为数组给出,但不是数字的累积和。 有没有办法继续这个表达式来获得我想要的东西,或者我是否需要使用迭代从我已经拥有的数组创建一个新的数组?

使用LINQ检查List 是否包含另一个List 中的元素

如何使用C#中的LINQ检查List是否包含另一个List中存在的元素? 我不想使用for / while循环。 所以,如果List1有A,B,C和List2有B,1,2,那么我会返回true。