我有两个类:查询嵌套列表
public GeneralClassName
{
public GeneralClassName()
{
SpecificList = new List<OtherClass>();
}
public string StringValue;
public string OtherStringValue;
public List<OtherClass> SpecificList;
}
和
public OtherClass
{
public string Name;
public string Number;
}
一个JSON反序列化我得到一个不错List<GeneralClassName>
后,结果我要的是一个Dictionary<string, int>
,其值是的总和List<GeneralClassName>
内的List<OtherClass>
内的变数“数字”,而关键是变数名称。
换句话说,我想按名称对数字进行分组。现在
,跨我的脑海里传来的唯一事情是一个嵌套的foreach,这样的事情:
Dictionary<string, int> resultDictionary = new Dictionary<string, int>();
foreach(List<OtherClass> listOtherClass in bigListGeneralClass.Select(x => x.SpecificList))
{
foreach(OtherClass otherClass in listOtherClass)
{
int value = 0;
if(resultDictionary.ContainsKey(otherClass.Name))
{
resultDictionary[otherClass.Name] += otherClass.Number;
}
else
{
resultDictionary.Add(otherClass.Name, otherClass.Number);
}
}
}
虽然这种解决方案似乎运作良好,我不喜欢它。 有没有更简洁的方法来找到这个结果?也许通过一个不错的LINQ查询?
什么otherClass.count?你的意思是otherClass.Number? –
当我第一次写这个问题时,我使用了一个不同的变量名。然后在阅读文本时,我发现使用“计数”令人困惑。你发现的那个必须滑倒:|对于错误感谢,并感谢编辑。 – Abaco