我有两个类,其中city2的key2链接到实用程序的键1。数据不存储在SQL表中,因此我无法链接并获得SQL所需的内容。
public class Town {
key1 string { get; set; }
key2 string { get; set; }
name string { get; set; }
}
public class Utility {
key1 string { get; set; }
key2 string { get; set; }
name string { get; set; }
}
数据如下所示
Town
-------
key1 key2 name
0 1 Liverpool
0 2 Preston
0 3 Wigan
Utility
------
key1 key2
1 West 2
1 West 3
3 East 1
3 East 2
我想要做的是创建一个报告,其中显示所有城镇的列表,其中包含一个辅助列,以显示每个城镇拥有的实用程序数量。
报告看起来像这样
Liverpool 2
Preston 0
Wigan 2
无法从公用事业信息中获取数据,因为我需要显示城镇没有公用设施的地方。我是什么 想到的是一些代码在城镇中迭代,然后为每个城镇做了检查并计算了数字 实用程序行。
如果数据存储在以下集合中:
ICollection<Town> Towns
ICollection<Utility> Utilities
那么是否有某种LINQ查询以某种方式将这些集合以与SQL中的外连接类似的方式连接起来?
答案 0 :(得分:4)
结帐Microsoft's 101 LINQ Samples。它提供了很好的连接示例。如果没有它,我不知道LINQ是怎么做的。
答案 1 :(得分:3)
这样可行,而且最简单:
var results = Towns.Select(t => new {
Town = t,
Utilities = Utilities.Count(u => t.key2 == u.key1)
})
.ToList();