0

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

IE

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 作为键添加到字典中,并将相应的产品代码作为字符串值(列表)?

4

1 回答 1

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);
    }
}
于 2013-04-04T11:59:23.447 回答