C# 将方法从Dictionary更改为Struct

C# 将方法从Dictionary更改为Struct,c#,linq,dictionary,C#,Linq,Dictionary,我有下面的方法,使用字典设置两个值nlId和名称/键和值。现在我明白了字典只能接受两个值,但我需要的是改变我的方法,这样我就可以允许更多的值添加到我的类型中。最好的方法是什么 public Dictionary<int, string> GetQuoteOptionList(QuoteOptionType optionType) { Dictionary<int, string> result = new Dictionary<int, string>

我有下面的方法,使用
字典
设置两个值nlId名称/
。现在我明白了字典只能接受两个值,但我需要的是改变我的方法,这样我就可以允许更多的值添加到我的类型中。最好的方法是什么

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;
    }
公共字典GetQuoteOptionList(QuoteOptionType optionType)
{
字典结果=新字典();
使用(TruckDb db=new TruckDb())
{
开关(optionType)
{
案例QuoteOptionType.BodyType:
ForEach(x=>result.Add(x.Id,x.Name));
打破
...
案例QuoteOptionType.RearDropSide:
ForEach(x=>result.Add(x.Id,x.Name));
打破
case QuoteOptionType.Extras://Example: (x.Id,x.Description,x.StockItem,x.MinimumStock)我想添加两个以上的值
ForEach(x=>result.Add(x.Id,x.Description));
打破
违约:
抛出新ArgumentException(“所选的选项没有相应的列表”);
}
}
返回结果;
}
我在我的代码中有一个关于我想要改变什么的例子,我把它贴在上面,只需检查
case QuoteOptionType.Extras:


提前感谢您的帮助或建议!:)

创建如下类:

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" }));
公共类您的类
{
公共字符串ID{get;set;}
公共字符串说明{get;set;}
公共字符串StockItem{get;set;}
公共字符串MinimumStock{get;set;}
}
列表结果=新列表();
ForEach(c=>result.Add(newyourclass{ID=“ID”,Description=“desc”,MinimumStock=“minimum”,StockItem=“stock”});

创建如下类:

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" }));
公共类您的类
{
公共字符串ID{get;set;}
公共字符串说明{get;set;}
公共字符串StockItem{get;set;}
公共字符串MinimumStock{get;set;}
}
列表结果=新列表();
ForEach(c=>result.Add(newyourclass{ID=“ID”,Description=“desc”,MinimumStock=“minimum”,StockItem=“stock”});

创建如下类:

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" }));
公共类您的类
{
公共字符串ID{get;set;}
公共字符串说明{get;set;}
公共字符串StockItem{get;set;}
公共字符串MinimumStock{get;set;}
}
列表结果=新列表();
ForEach(c=>result.Add(newyourclass{ID=“ID”,Description=“desc”,MinimumStock=“minimum”,StockItem=“stock”});

创建如下类:

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" }));
公共类您的类
{
公共字符串ID{get;set;}
公共字符串说明{get;set;}
公共字符串StockItem{get;set;}
公共字符串MinimumStock{get;set;}
}
列表结果=新列表();
ForEach(c=>result.Add(newyourclass{ID=“ID”,Description=“desc”,MinimumStock=“minimum”,StockItem=“stock”});

要使用的结构、字典、列表等的选择,。。。不取决于要存储的数据,而是取决于插入、搜索、排序等约束条件,。。 若你们使用字典,我想你们需要快速检索条目。您可以继续使用字典,只需将值类型从字符串替换为新类:

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*/));

选择要使用的结构、词典、列表等,。。。不取决于要存储的数据,而是取决于插入、搜索、排序等约束条件,。。 若你们使用字典,我想你们需要快速检索条目。您可以继续使用字典,只需将值类型从字符串替换为新类:

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*/));

选择要使用的结构、词典、列表等,。。。不取决于要存储的数据,而是取决于插入、搜索、排序等约束条件,。。 若你们使用字典,我想你们需要快速检索条目。您可以继续使用字典,只需将值类型从字符串替换为新类:

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*/));

选择要使用的结构、词典、列表等,。。。不取决于要存储的数据,而是取决于插入、搜索、排序等约束条件,。。 若你们使用字典,我想你们需要快速检索条目。您可以继续使用字典,只需将值类型从字符串替换为新类:

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*/));

请看一下你的标题,它很烦人。结构在这里是没有用的。您应该考虑第二类字典的列表,或者自定义类型.>代码>字典或int和对象字典,其中对象保存值。code>字典@user2946329-是的,非常感谢,你和其他人的答案对我帮助很大:)请查看你的标题,它很烦人。结构在这里是没有用的。您应该考虑第二类字典的列表,或者自定义类型.>代码>字典或int和对象字典,其中对象保存值。code>字典@user2946329-是的,非常感谢,你和其他人的答案对我帮助很大:)请查看你的标题,它很烦人。结构在这里是没有用的。您应该考虑第二类字典的列表,或者自定义类型.>代码>字典或int和对象字典,其中对象保存值。code>字典@user2946329-是的,非常感谢,你和其他人的答案对我帮助很大:)请查看你的标题,它很烦人。结构在这里是没有用的。您应该考虑第二类字典的列表,或者自定义类型.>代码>字典或int和对象字典,其中对象保存值。代码>字典@user2946329-是的,非常感谢,你和其他人的答案对我帮助很大:)