And*_*rew 10 linq entity-framework
我有一个对象Foo的集合,其ICollection属性包含一个People对象列表.
public class Foo
{
public int Id { get; set; }
public string Name { get; set; }
public ICollection<Person> People { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我有另一份人员名单.
ICollection<Person> OtherPeople
Run Code Online (Sandbox Code Playgroud)
我需要找到所有对象Foo,其中People包含来自OtherPeople的任何人.是否有接受集合的.Contains版本?就像是:
var result = from f in FooCollection
where f.People.Contains(otherPeople)
select f;
Run Code Online (Sandbox Code Playgroud)
如果重要的话,我正在使用Entity Framework.
Nat*_*ins 16
您指的是使用C#Linq的Any方法.
该Any方法基本上表明该集合中的任何元素(Enumerable)是否满足条件,在您的情况下条件是另一个集合是否包含其中一个元素.
恩.
public bool HasPeople(ICollection<Person> original, ICollection<Person> otherPeople)
{
return original.Any(p => otherPeople.Contains(p));
}
Run Code Online (Sandbox Code Playgroud)
但是,如果集合具有满足条件的元素,则该Any方法返回boolean到状态Any- 这不会为我们提供哪些元素.
Linq中另一个值得注意的方法是Where给我们满足条件的所有元素.
恩.
public IEnumerable<Person> GetPeople(ICollection<Person> original, ICollection<Person> otherPeople)
{
return original.Where(p => otherPeople.Contains(p));
}
Run Code Online (Sandbox Code Playgroud)
我希望能让你朝着正确的方向前进.实体框架应该无关紧要,因为它们是可枚举的.几乎忘了提到Linq方法相当简单,所以他们真的不需要这些方法在他们自己的方法中.
| 归档时间: |
|
| 查看次数: |
15373 次 |
| 最近记录: |