我想用key-> postal和value-> city构建一个组合框,作为我的住宿的过滤器。从查询中获取唯一值生成字典
要限制列表中项目的数量,我只使用填充表tblAccomodations时使用的邮政编码。 现在我不使用与邮政和城市的关系表,虽然我在后面考虑更新。
在这里,我建我的字典:
public static Dictionary<int, string> getPostals()
{
Dictionary<int, string> oPostals = new Dictionary<int, string>();
using (DBReservationDataContext oReservation = new DBReservationDataContext())
{
var oAllPostals = (from oAccomodation in oReservation.tblAccomodations
orderby oAccomodation.Name ascending
select oAccomodation);
foreach (tblAccomodation item in oAllPostals)
{
oPostals.Add(int.Parse(item.Postal), item.City);
}
}
return oPostals;
}
正如预期的那样我得到了一个错误:有些住宿地都位于同一个城市,所以有关键双重价值。那么,我怎样才能得到一个独特的城市和邮政名单(作为关键)? 我试图用
select oAccomodation.Postal.Distinct()
但也不能工作。
更新:我发现了主要问题。有多个城市具有相同的邮政(“子城市”)。所以我要过滤“城市”而不是“邮政”。
我的确在用Distinct()尝试,但那也没用。现在我已经看到了问题所在。有些城市有同样的邮寄地址,我认为这些邮件已经崩溃了。 – bflydesign 2012-02-16 10:50:41