[C#]用LINQ計算陣列中項目出現的次數
假設 資料內容 只有書名,出現幾次 是代表 賣出幾本,
我要知道所有書的銷量就要計算出,每本書出現幾次,透過以下code
就可得知 所有書的銷量,如果只要挑出銷量>2的,則程式只要改成
var q =
from p in Books
group p by p.ToString() into g
where g.Count() > 2 //只顯示超過兩次以上的
select new
{
g.Key,
NumProducts = g.Count()
};
這樣就可以了。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Sample
{
class Program
{
static void Main(string[] args)
{
List<string> Books = new List<string> {
".NET 網路與 I/O 技術手冊 ",
".NET 網路與 I/O 技術手冊 ",
".NET通訊介面開發與應用 ",
".NET通訊介面開發與應用 ",
"Visual C# 2010與UML開發實戰 ",
"Visual C# 2010與UML開發實戰 ",
"Visual C# 2010與UML開發實戰 ",
"Visual C#2010 程式設計實例演練與系統開發 ",
"Visual C#2010 程式設計實例演練與系統開發 ",
"Visual C#2010 程式設計實例演練與系統開發 ",
"Visual C#2010 程式設計實例演練與系統開發 "
};
var q =
from p in Books
group p by p.ToString() into g
select new
{
g.Key,
NumProducts = g.Count()
};
foreach (var x in q)
{
Console.WriteLine(x);//顯示 所有書的銷量
}
Console.ReadLine();
}
}
}
如有錯誤 歡迎指正