首页 / C# / c# – 为字典中的每个键添加值
c# – 为字典中的每个键添加值
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了c# – 为字典中的每个键添加值,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1457字,纯文字阅读大概需要3分钟。
内容图文
![c# – 为字典中的每个键添加值](/upload/InfoBanner/zyjiaocheng/793/3c2b081c58034c92bdb9204256bc1109.jpg)
我创建了一个字典,其中有一个米号作为键和一个值的列表.例如:Meter1的索引0值为45,索引1的值为65.我想知道为每个仪表编号添加索引0的最有效方法吗?我试图获得给定指数的最大附加值.列表的长度相同.我附上了我创建字典的代码.
Dictionary<string, List<string>> dictionary = new Dictionary<string, List<string>>();
foreach (string ertNumber in ertNumberList)
{
if (!dictionary.ContainsKey(ertNumber))
{
List<string> meterReadings = new List<string>();
meterReadings = getValuesFromOID(ertNumber);
dictionary.Add(ertNumber, meterReadings);
}
}
解决方法:
I am trying to get the max added value at a given index.
要获得每个索引的最大值,请尝试以下操作:
Dictionary<string, List<double>> dictionary = ... // NOTE: use some numeric type
Dictionary<string, double> maxima = dictionary.ToDictionary(p => p.Key, p => p.Value.Max());
这将生成一个新的字典,它存储源字典中每个索引的每个值的最大值.
更新
所以你有这个结构
"Meter1", [ 15, 5, 10 ]
"Meter2", [ 10, 50, 20 ]
并且您想要计算任何指数的仪表读数总和的最大值.假设每个List< double>是相同的长度,如果我理解正确,那将是:
Dictionary<string, List<double>> dictionary = ...
var length = dictionary.First().Value.Length;
var maximum = Enumerable.Range(0, length)
.Select(i => dictionary.Values.Select(d => d[i]).Sum())
.Max(); // 55
如果您还想获得最大值的索引,可以使用:
var result =
(from i in Enumerable.Range(0, length)
let s = dictionary.Values.Select(d => d[i]).Sum()
orderby s descending
select new { Index = i, Sum = s })
.First(); // { Index = 1, Sum = 55 }
内容总结
以上是互联网集市为您收集整理的c# – 为字典中的每个键添加值全部内容,希望文章能够帮你解决c# – 为字典中的每个键添加值所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。