ToList
其他信息:
目标是确定哪种成分将首先耗尽多少。如你所见,我可以获得价值而不是名称。
答案 0 :(得分:0)
如果您要查找变量的名称,请尝试nameof(var)
,在这种情况下string orderId = nameof(orderValue);
否则,您可能需要考虑为您的成分创建自定义类或使用Dictionary<string, double>
。
编辑: 字典将获得与使用自定义Ingredient类相似的结果。
var items = new Dictionary<string, double>()
{
{ "ingredient1", 2 },
{ "ingredient2", 4 },
{ "ingredient3", 5 },
{ "ingredient4", 1 },
};
var lowestIngredient = items.OrderBy(i => i.Value).FirstOrDefault();
Console.WriteLine($"{lowestIngredient.Key} {lowestIngredient.Value}");
答案 1 :(得分:0)
您需要一种方法将成分的库存水平(您拥有的双重变量)与成分的订单ID相关联(这是您最终想要的结果)。
一种解决方案是使用看起来像这样的Ingredient类:
public class Ingredient
{
public double InventoryLevel { get; set; }
public string OrderId { get; set; }
}
然后你可以有一份成分列表,而不是双打,按库存水平订购,并获得最低库存成分。
// make your list of ingredients with order ids, and inventory levels
var ingredients = new List<Ingredient>
{
new Ingredient {OrderId = "Ingredient1", InventoryLevel = 10.0},
new Ingredient {OrderId = "Ingredient2", InventoryLevel = 2.0},
new Ingredient {OrderId = "Ingredient3", InventoryLevel = 15.0},
new Ingredient {OrderId = "Ingredient4", InventoryLevel = 6.0}
};
// get the ingredient with the lowest inventory level
var lowestStockedIngredient = ingredients.OrderBy(i => i.InventoryLevel ).FirstOrDefault();
string orderId = lowestStockedIngredient.OrderId;