比较字典对象并获得具有最低值的字典对象

时间:2016-11-21 16:17:14

标签: c# asp.net .net

所以我有这个变量:

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

列表中的字典有3个键。 “unit_price”,“name”和“quantity”,其中包含不同的值。

我怎样才能以最好的方式将字典objekt与最低的unit_price对话并将该unit_price转换为int变量。我不知道如何做到这一点我已经尝试但是绝对没有人可以帮助我吗?

2 个答案:

答案 0 :(得分: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;

答案 1 :(得分:0)

使用LINQ应该很容易。我假设您需要将unit_prices解析为int,请注意:如果数据无法转换为int,则会抛出异常。

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