2016-11-21 66 views
-1

,所以我有這個變量:比較字典對象,並得到一個與最低值

var productsInCart = (List<Dictionary<string, object>>)Session["ProductsInCart"]; 

列表內的dictionarys有3個按鍵。 「單位價格」,「名稱」和「數量」,其中具有不同的值。

我怎樣才能以最好的方式獲得最低unit_price的字典對象並將該unit_price轉換爲int變量。我不知道如何做到這一點,我已經嘗試過,但已絕對無處可以有人幫助我嗎?

+0

那你試試?你的實現有什麼問題?另外,你爲什麼要以這種方式存儲你的數據?你應該有一個自定義對象,而不是一個字典來存儲這些值。 – Servy

+0

你的問題很不清楚...... – obenda

+0

我只是想找出哪些字典有最低的unit_price。我沒有什麼可以告訴你,因爲我試過的東西太糟糕了。我甚至不知道從哪裏開始 –

回答

0

使用LINQ應該很容易。我假設你需要將unit_prices解析爲int,注意:如果數據不能轉換爲int,這將拋出異常。

int result = productsInCart.Select(x => int.Parse(x["unit_price"])).Min(); 
1

此代碼是更長的時間,但它管理空集和無效的數字鍵

var dict_object = productsInCart.Where(x => int.TryParse($"{x["unit_price"]}", out i)) 
    .OrderBy(x => (int)x["unit_price"]).FirstOrDefault(); 
int u_price = (dict_object != null) ? (int)dict_object["unit_price"] : 0;