我之前在提取數據服務器端的計數方面問過一個問題,並在網站上提供了一個解決方案。建議使用完美的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