gpt4 book ai didi

c# - 如何计算 C# 中嵌套字典中 int 值的出现次数

转载 作者:行者123 更新时间:2023-11-30 23:19:05 26 4
gpt4 key购买 nike

我在找字典

Dictionary<string, Dictionary<string, int>> personStats

在我的代码中,它会自动生成具有一组特定键 + 值的新“人”(键)。第一个“字符串”是名称,在嵌套字典中,您有诸如“年龄”、“高度”、“性别”之类的字符串以及附加的 int 值。

示例:John 年龄:20,高度:180,性别:0(0 代表男性)。

在我的例子中,我想计算特定字符串上的特定 int 值出现了多少次。示例:我在字典中有 100 个人(键),我想知道有多少人的确切“年龄”为 43。

我试过使用 .Count。示例:personStats.Count(),但它当然会计算第一个字符串(更不用说它没有考虑到我想计算特定的 int 值)。我也尝试过使用 foreach,但我不知道如何进入嵌套字典来查找字符串 "

编辑:我如何生成新 key 的示例。参数(personname,statType,value)来自其他方法。

public void SetPersonStats(string personname, string statType, int value)
{

if (personStats.ContainsKey(personname) == false)
{
personStats[personname] = new Dictionary<string, int>();
}

personStats[personname][statType] = value;
}

所以参数可以是 (John, age, 20), and (John, height, 180), and (John, gender, 0)。所以最后我会得到条目(?)John 和 3 个附加的字符串+值:age=20,heigh=180,gender=0。想象一下,我运行了 100 次,得到了 100 个随机年龄的不同名字,我想计算有多少人的年龄是 43 岁。

最佳答案

这应该会获取 42 岁的用户数量:

personStats.Count(c => c.Value["age"] == 42);

理想情况下,您应该使用类来定义人。有点像

enum Gender
{
Male,
Female
}
class PersonStats
{
int Age;
int Height;
Gender Gender;
}


//Add to the dictionary
var dict = Dictionary<string, PersonStats>();
dict.Add("FrankerZ", new PersonStats{
Age = 28,
Height = 180,
Gender = Gender.Male
});

//Some example filters:
dict.Count(person => person.Age == 28); //1
dict.Count(person => person.Gender == Gender.Male); //1

关于c# - 如何计算 C# 中嵌套字典中 int 值的出现次数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40464508/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com