我之前在提取数据服务器端的计数方面问过一个问题,并在网站上提供了一个解决方案。建议使用完美的linq,但由于我相对较新,我需要一点深入的帮助。稍微复杂的LINQ for C#
利用约翰的解决方案:
class Guy
{
public int age; public string name;
public Guy(int age, string name) {
this.age = age;
this.name = name;
}
}
class Program
{
static void Main(string[] args) {
var GuyArray = new Guy[] {
new Guy(22,"John"),new Guy(25,"John"),new Guy(27,"John"),new Guy(29,"John"),new Guy(12,"Jack"),new Guy(32,"Jack"),new Guy(52,"Jack"),new Guy(100,"Abe")};
var peeps = from f in GuyArray group f by f.name into g select new { name = g.Key, count = g.Count() };
foreach (var record in peeps) {
Console.WriteLine(record.name + " : " + record.count);
}
}
}
我可以使用上述约翰,杰克和安倍晋三的出现次数由约翰的建议。但如果问题是例如一个稍微复杂
var GuyArray = new Guy[] {
new Guy(22,"John", "happy"),new Guy(25,"John", "sad"),new Guy(27,"John", "ok"),
new Guy(29,"John", "happy"),new Guy(12,"Jack", "happy"),new Guy(32,"Jack", "happy"),
new Guy(52,"Jack", "happy"),new Guy(100,"Abe", "ok")};
上面的代码的伟大工程,以获取不同的名字出现的次数,但如果我需要的名字出现次数的数量,也数每个人的快乐,悲伤或好的事件的发生。即输出是:姓名,名字的数量,快乐的名字的数量,悲伤的名字的数量,可以名字的数量。如果linq不是这方面的最佳解决方案,我愿意倾听所有的选择。非常感谢您的帮助。
添加至少一个链接到另外一个问题,这样我不明白 – Martin