我有以下方法,我使用Dictionary
设置两个值nl。 ID 和名称 / key
和value
。现在我明白了一个词典只能取 两个 值,但我需要的是改变我的方法,以便我可以允许更多的值添加到我的Type中。最好的方法是什么?
public Dictionary<int, string> GetQuoteOptionList(QuoteOptionType optionType)
{
Dictionary<int, string> result = new Dictionary<int, string>();
using (TruckDb db = new TruckDb())
{
switch (optionType)
{
case QuoteOptionType.BodyType:
db.BodyTypes.ToList().ForEach(x => result.Add(x.Id, x.Name));
break;
...
case QuoteOptionType.RearDropSide:
db.RearDropSides.ToList().ForEach(x => result.Add(x.Id, x.Name));
break;
case QuoteOptionType.Extras://Example: (x.Id, x.Description, x.StockItem, x.MinimumStock) I would like to add more than just two values
db.Extras.ToList().ForEach(x => result.Add(x.Id, x.Description));
break;
default:
throw new ArgumentException("The option that was selected does not have a corresponding list.");
}
}
return result;
}
我的代码中有一个关于我想要更改的示例,我在上面发布了它,只需检查case QuoteOptionType.Extras:
提前感谢您的任何帮助或建议! :)
答案 0 :(得分:2)
创建一个这样的类:
public class yourClass
{
public string ID { get; set; }
public string Description { get; set; }
public string StockItem { get; set; }
public string MinimumStock { get; set; }
}
List<yourClass> result = new List<yourClass>();
db.Extras.ToList().ForEach(c => result.Add(new yourClass { ID="id" , Description="desc" , MinimumStock="minimum" , StockItem="stock" }));
答案 1 :(得分:1)
要使用的结构选择,词典,列表,...不依赖于您要存储的数据,但取决于您对插入,搜索,排序等的约束。 如果你使用字典,我想你需要快速回收项目。您可以继续使用字典,只需将字符串中的值类型替换为新类:
public class NewClass
{
public string Id{ get; set; }
public string Description { get; set; }
//......
}
db.Extras.ToList().ForEach(c => result.Add(x.Id, new NewClass(x.Id/*other field*/));