班级:
Contact{
public int Id { get; set; }
public string Email { get; set; }
public string DisplayName { get; set; }
public int DocCount { get; set; }
public string DocName { get; set; }
}
我有一个联系人名单看起来像是
var contactList = new List<Contact>(){
new Contact(){1,"abc@abc.com","ABC",0,"testdoc1"},
new Contact(){1,"abc@abc.com","ABC",0,"testdoc2"},
new Contact(){1,"abc@abc.com","ABC",0,"testdoc3"},
new Contact(){2,"xyz@abc.com","XYZ",0,"testdoc1"},
new Contact(){2,"xyz@abc.com","XYZ",0,"testdoc2"},
new Contact(){2,"xyz@abc.com","XYZ",0,"testdoc3"},
new Contact(){3,"mop@abc.com","MOP",0,"testdoc1"},
new Contact(){3,"mop@abc.com","MOP",0,"testdoc2"},
}
我正在寻找的输出,我需要更新的文件计数的基础上,由用户上传的文件计数。
预期输出为:
{1,"abc@abc.com","ABC",3,"testdoc1 testdoc2 testdoc3"},
{2,"xyz@abc.com","XYZ",3,"testdoc1 testdoc2 testdoc3"},
{3,"mop@abc.com","MOP",2,"testdoc1 testdoc2"}
有什么方法可以做到这一点吗?我知道我们可以引入新类并实现它,但需要一些最小的东西
2条答案
按热度按时间hmae6n7t1#
我认为通过LINQ更新示例不是一个好的实践--只需创建一个新的
Contact
示例:或者,如果您预计电子邮件/显示名称会出现差异:
ssm49v7z2#
您可以将
GroupBy()
和Select()
结合使用: