LINQ将元素过滤到集合中
本文关键字:集合 过滤 元素 LINQ | 更新日期: 2023-09-27 18:15:57
我首先使用实体框架代码。我有一个集合比如说:
IDbSet<A> As {get;set;}
A是一个像这样的对象:
public class A
{
public int Id {get;set;}
public string name {get;set};
....
public IList<B> Bs {get;set;}
}
public clas B
{
public int Id {get;set;}
public string name {get;set;}
}
使用linq,我想过滤包含B.name =="某些东西"的列表,那么如何实现这一点?我想做的是:
context.As.Where(a => a.Bs.contains(....));
你可以使用Any()
context.As.Where(a => a.Bs.Any(b => b.name == "something").ToList();
它接受一个谓词,并在匹配时返回,使其有效。
我会使用Any()方法。
var result = context.As.Where(a => a.Bs.Any(b => b.Name == "something"));
嗯,是的,你这样做:
var AsWithSomethingBs =
context.As.Where(a => a.Bs.Any(b => b.Name == "Something"));
这基本上是说:给我所有A的b的名字等于"某"的A
context.As.Where(a => a.Bs.Any(x => x.name=="something"));