นี่เป็นเรื่องง่าย แต่ฉันกำลังแพ้: ให้ชุดข้อมูลประเภทนี้:
UserInfo(name, metric, day, other_metric)
และชุดข้อมูลตัวอย่างนี้:
joe 1 01/01/2011 5
jane 0 01/02/2011 9
john 2 01/03/2011 0
jim 3 01/04/2011 1
jean 1 01/05/2011 3
jill 2 01/06/2011 5
jeb 0 01/07/2011 3
jenn 0 01/08/2011 7
ฉันต้องการดึงข้อมูลตารางที่แสดงรายการตัวชี้วัดตามลำดับ (0,1,2,3 .. ) โดยมีจำนวนครั้งทั้งหมดที่การนับเกิดขึ้น ดังนั้นจากชุดนี้คุณจะได้:
0 3
1 2
2 2
3 1
ฉันกำลังต่อสู้กับไวยากรณ์ของ LINQ แต่ฉันติดอยู่ที่ที่จะวางกลุ่มโดยนับและช่วย .... ใด ๆ ??
โพสต์แก้ไข: ฉันไม่สามารถรับคำตอบที่โพสต์เพื่อให้ทำงานได้เนื่องจากพวกเขาส่งคืนหนึ่งระเบียนด้วยจำนวนการนับที่แตกต่างกันเสมอ อย่างไรก็ตามฉันสามารถรวบรวมตัวอย่าง LINQ ไปยัง SQL ที่ทำงาน:
var pl = from r in info
orderby r.metric
group r by r.metric into grp
select new { key = grp.Key, cnt = grp.Count()};
ผลลัพธ์นี้ทำให้ฉันมีชุดของระเบียนที่สั่งด้วย 'ตัวชี้วัด' และจำนวนผู้ใช้ที่เชื่อมโยงกับแต่ละรายการ ฉันค่อนข้างใหม่กับ LINQ โดยทั่วไปและสำหรับสายตาที่ไม่ได้รับการฝึกฝนวิธีการนี้ดูเหมือนว่าคล้ายคลึงกับวิธี LINQ บริสุทธิ์มาก แต่ก็ให้คำตอบที่ต่างออกไป