将对象的值添加到字典中

时间:2013-04-04 11:54:38

标签: c# dictionary

我有一个从xml文件中获取的对象,它包含一个与指定系列代码关联的SeriesCode和ProductCodes字段。

SeriesCodeA
      prodCode1
      prodCode2
      prodCode3
SeriesCodeA
      prodCode4
      prodCode5
      prodCode6

我创建了以下字典

Dictionary<string, List<string>> dictSeries = new Dictionary<string, List<string>>();

我想要添加到字典中的对象的值。所以换句话说我想,为每个系列代码添加到Dictionary键作为字符串值,将相应的产品代码添加为字符串值。

类似

foreach (var s in series)
{
    string code = s.SeriesCode;
    if (dictSeries.ContainsKey(code))
    {
        foreach (var l in s.ProductCodes)
        {
            dictSeries[code].Add(l);
        }
    }

}

上述情况不太正确

如何将SeriesCodes作为字典的键添加到相应的产品代码作为字符串值(List)?

1 个答案:

答案 0 :(得分:3)

使用LINQToDictionary方法使其更具可读性:

var dictSeries = series.ToDictionary(x => x.SeriesCode, x => x.ProductCodes);

假设您的Series课程如下:

class Serie
{
    public string SeriesCode { get; set; }
    public List<string> ProductCodes { get; set; }
}

您的代码也可以使用,但几乎无需改进:

foreach (var s in series)
{
    string code = s.SeriesCode;
    if (!dictSeries.ContainsKey(code))
    {
        dictSeries.Add(code, new List<string>());
    }

    foreach (var l in s.ProductCodes)
    {
        dictSeries[code].Add(l);
    }
}