我有一个从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)?
答案 0 :(得分:3)
使用LINQ
和ToDictionary
方法使其更具可读性:
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);
}
}