C# 统计列表中自身结构的重复项

C# 统计列表中自身结构的重复项,c#,C#,每个人都有ID和Name,我怎样才能同时存储Name 预期产出: ID Count 1 7 2 5 有很多方法可以实现您想要的功能,例如,使用值类型作为键 ID Name Count 1 John 7 2 Andrew 5 公共结构人 { 公共int Id{get;set;} 公共字符串{get;set;} } Dictionary personListCount=新建字典(); //代码的其余部分 有很多方法可以实

每个人都有
ID
Name
,我怎样才能同时存储
Name

预期产出:

ID     Count
1      7
2      5

有很多方法可以实现您想要的功能,例如,使用值类型作为键

ID     Name     Count
1      John     7
2      Andrew   5
公共结构人
{
公共int Id{get;set;}
公共字符串{get;set;}
}
Dictionary personListCount=新建字典();
//代码的其余部分

有很多方法可以实现您想要的功能,例如,使用值类型作为键

ID     Name     Count
1      John     7
2      Andrew   5
公共结构人
{
公共int Id{get;set;}
公共字符串{get;set;}
}
Dictionary personListCount=新建字典();
//代码的其余部分

首先,创建一个类来表示一个人:

public struct Person
{
    public int Id {get;set;}
    public string {get;set;}
}
Dictionary<Person, int> personListCount = new Dictionary<Person, int>();
//the rest of your code
现在,您可以有一个人员列表:

public class Person
{
    public int Id { get; set; }
    public string Name { get; set; }
}
最后,我们可以输出每组的人数:

var peopleGroups = people.GroupBy(p => p.Id);
输出


首先,创建一个类来表示一个人:

public struct Person
{
    public int Id {get;set;}
    public string {get;set;}
}
Dictionary<Person, int> personListCount = new Dictionary<Person, int>();
//the rest of your code
现在,您可以有一个人员列表:

public class Person
{
    public int Id { get; set; }
    public string Name { get; set; }
}
最后,我们可以输出每组的人数:

var peopleGroups = people.GroupBy(p => p.Id);
输出


创建一个包含所有要存储的属性的person对象,并创建一个字典。。。请参见下文@Sergii Bidnyi的回答。请澄清您的问题?标题并不十分清楚,因为示例代码中没有列表。但是您似乎需要创建一个
类Person
来包含
Id
Name
属性。创建一个Person对象,其中包含所有要存储的属性,并创建一个字典。。。请参见下文@Sergii Bidnyi的回答。请澄清您的问题?标题并不十分清楚,因为示例代码中没有列表。但是似乎需要创建一个
类Person
来包含
Id
Name
属性。但是
ContainsKey
将应用于整个结构,不是吗?我如何仅对
ID
应用它?不要对个人的ID进行比较-如果(!personListCount.ContainsKey(person))您需要指定用于比较的属性或实现相等,因为默认比较是引用比较。但是
ContainsKey
将应用于整个结构,不会吧?如何仅对
ID
应用它?不要对个人的ID进行比较-如果(!personListCount.ContainsKey(person))您需要指定用于比较的属性或实现相等,因为默认比较是引用比较。