我想用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