我有清单,即List<Field>
。这个 Field 类在其他字段中包含一个代码和一个值属性,我希望能够使用 linq 来总结相同代码的所有值。
我知道我可以遍历我的列表并使用以下代码将其添加到字典中,但我确信必须有一种更简洁的方法来做到这一点:
if (totals.ContainsKey(code))
{
totals[code] += value;
}
else
{
totals.Add(code, value);
}
有任何想法吗?
我发现了类似的东西,但这适用于 list> 这不是我所拥有的:
var result = Sales.SelectMany(d => d) // Flatten the list of dictionaries
.GroupBy(kvp => kvp.Key, kvp => kvp.Value) // Group the products
.ToDictionary(g => g.Key, g => g.Sum());
来自这篇文章 [Sum amount using Linq in <List<Dictionary<string, int>>
] Sum amount using Linq in <List<Dictionary<string, int>>
有任何想法吗?我总是可以将我的代码更改为拥有一个Dictionary<string, Field>
,但我确信必须有一种方法可以使用列表和 linq 来做到这一点。
谢谢。
我有清单,即List<Field>
。这个 Field 类在其他字段中包含一个代码和一个值属性,我希望能够使用 linq 来总结相同代码的所有值。
我知道我可以遍历我的列表并使用以下代码将其添加到字典中,但我确信必须有一种更简洁的方法来做到这一点:
if (totals.ContainsKey(code))
{
totals[code] += value;
}
else
{
totals.Add(code, value);
}
有任何想法吗?
我发现了类似的东西,但这适用于 list> 这不是我所拥有的:
var result = Sales.SelectMany(d => d) // Flatten the list of dictionaries
.GroupBy(kvp => kvp.Key, kvp => kvp.Value) // Group the products
.ToDictionary(g => g.Key, g => g.Sum());
来自这篇文章 [Sum amount using Linq in <List<Dictionary<string, int>>
] Sum amount using Linq in <List<Dictionary<string, int>>
有任何想法吗?我总是可以将我的代码更改为拥有一个Dictionary<string, Field>
,但我确信必须有一种方法可以使用列表和 linq 来做到这一点。
谢谢。
更新:
对不起,我想我省略了关于上述内容的重要部分。该列表包含在另一个列表中,即 List> myitemList;其中将包含其他可能需要进一步过滤的不相关字段。我不知道???
注意:抱歉,格式又搞砸了!
对此提供一些背景信息:
Item1(列表类型)
项目名称值
(项目 1) 类型 1 (项目 2) 描述测试 (项目 3) 代码 A (项目 4) 净值 100.00
Item2(列表类型)
项目名称值
(项目 1) 类型 2 (项目 2) 描述 Test1 (项目 3) 代码 B (项目 4) 净 95.55
第 3 项(列表类型)
项目名称值
(项目 1) 类型 2 (项目 2) 描述 Test2 (项目 3) 代码 A (项目 4) 净值 35.95
如您所见,每个 List 类型的列表都包含 4 个字段条目,其中我的字段用名称(字符串)和值(对象)定义
然后将这些列表中的每一个添加到主列表中。所以我需要遍历主列表,然后我想得到一个字典,其中包含每个列表的“代码”和“网络”的总和。所以最后,我应该结束
A, 135.95 B, 95.55
不知道上面说的有没有道理。我希望是的!
更新
我正在处理一个列表的事实> 实际上并没有改变,因为我当时实际上想总结一个列表,所以提供的答案是正确的!谢谢!