但是,尝试将列表对象添加到字典中时,我无法理解这个概念:您拥有它们的键,因此如果没有键冲突,您就无法执行.add。
使用购物清单程序,我需要将库存添加到客户的购物车中,将其从库存中删除,然后将其添加到字典中。
public static Inventory AddToCart(List<Inventory> Inventory)
{
// this method moves a dvd from inventory to the shopping cart.
int i = 0;
int iInput = 0;
Inventory newCart = null;
if (Inventory.Count > 0)
{
foreach (Inventory obj in Inventory)
{
++i;
Console.WriteLine("[" + i + "] " + obj.ToString());
}
iInput = Validation.GetInt("Please Choose an item to add to cart: ");
Console.Write($"Move item at record: #{iInput - 1} to shopping cart: (y or n)");
string sInput = Console.ReadLine();
if (string.IsNullOrEmpty(sInput))
{
Console.WriteLine("\r\nNo Valid number was chosen: ");
}
else
switch (sInput.ToLower())
{
case "y":
{
newCart = Inventory[iInput - 1];
Inventory.RemoveAt(iInput - 1);
}
break;
case "n":
case null:
case "":
{
Console.WriteLine("\r\nNo Valid number was chosen: ");
}
break;
default:
{
Console.WriteLine("Keeping item in Inventory");
}
break;
}
}
else
{
Console.WriteLine("\nNo records were found in the Shopping Cart");
}
return newCart;
}
这仅使用一个列表,但是我需要能够将其转换为嵌入了该列表的字典
答案 0 :(得分:-1)
string newKey = "NEW KEY";
string firstListElement = "FIRST";
Dictionary<string, List<string>> dict = new Dictionary<string, List<string>>();
if (dict.ContainsKey(newKey)) {
// you need to throw an exception or return some signal to exit function
}
dict.Add(newKey, new List<string>());
dict[newKey].Add(firstListElement);
答案 1 :(得分:-1)
我不确定我是否理解您的问题,但这是一些有关如何使用包含列表的字典的解释。
您拥有由键和列表组成的字典。
Dictionary<string, List<int>> dictionaryWithList = new Dictionary<string, List<int>>();
如果要将某些内容保存到此列表中,则必须首先创建一个键值对。这意味着将一个元素添加到包含键和列表的字典中。如果要在添加键值对时填充列表,可以执行以下操作:
List<int> myList = new List<int>();
myList.Add(5);
myList.Add(6);
myList.Add(7);
dictionaryWithList.Add("test", myList);
现在您有了一个包含5、6和7的列表,您可以使用字典内部的“测试”键来访问该列表。
如果要访问列表,请使用:
dictionaryWithList["test"]
因此,如果您要向具有“ test”键的列表中添加新号码,则可以使用:
dictionaryWithList["test"].Add(42)
如果要避免遇到因键不存在而导致的异常,请测试键是否首先存在:
if(dictionaryWithList.ContainsKey("test"))
如果这仍不能帮助您提供有关您的问题的进一步信息,请通知我:)