我被困在下面的问题C#LINQ: 我想加载一个目录,但我可以通过一个以上的参数可能是什么标准来找到我想要的清单。 现在我有以下结构:有两个列表
House{
Name;
ID;
Alias;
}
我也有:
Person{
Name;
Alias;
}
这意味着,1个可容纳多人,并与多个同名的人可以在多个房屋。 所以现在我想打电话给我的功能e.G. “GetHouses(字符串标准)”作为标准可以是:
- 房子
- 房子
- 房子
- 中的一个的名称的名称的一部分的ID的名称在房子里的人
现在我只是读了每一个房子,它的数据和我选择的标准之后。
重要提示:我不能改变的逻辑,直到在这里!
所以现在我试图找到我想出了使用LINQ,因为它是非常快的匹配标准。
result = (from x in result
where (
(string.Equals(x.Name, criteria))
|| (string.Equals(x.ID, criteria))
|| (x.Name.Contains(criteria))
select x).ToList();
现在我想每个人的负载,我发现房屋和检查,如果在房子里的人的名称将匹配条件:我不比较的人它的工作原理为长。 有没有办法在LINQ中做到这一点我已经? 还是我去,虽然与结果:
result.ForEach(x => ...)
将是很好,如果将与LINQ工作。 我做了一个类似的逻辑与
result.FindAll(new Predicate<House>((x) => { ... LoadPersons(criteria) {... } }));
但是走上长。
亲切的问候, Asat0r
你不只是试图连接在LINQ这两个项目“全价值”更容易的房屋搜索?而不是一个foreach – BugFinder
房子与这个人有什么关系?你是否想将这些人“加载”到具有相同匹配标准的匹配房屋中?如果是这样,如果一个人可以匹配到多个房子呢? –
House不应该在其中包含人员列表吗? – OrMiz