التجميع حسب عدة أعمدة باستخدام LINQ في C#
مرحبًا بالجميع! أنا مبتدئ في C# وLINQ، وقد واجهت مشكلة عند تجميع البيانات. لدي قائمة من الطلبات (List)، حيث يحتوي كل طلب على الحقول: CustomerId وProductId وQuantity وPrice. أحتاج إلى تجميع الطلبات حسب حقلين في وقت واحد — حسب CustomerId وProductId — للحصول على الكمية الإجمالية والمجموع لكل عميل ومنتج.
إليك الكلاس الخاص بي:
```csharp
public class Order
{
public int CustomerId { get; set; }
public int ProductId { get; set; }
public int Quantity { get; set; }
public decimal Price { get; set; }
}
```
لقد جربت استخدام GroupBy مع حقل واحد، على سبيل المثال:
```csharp
var grouped = orders.GroupBy(o => o.CustomerId);
```
هذا يعمل، لكني أحتاج إلى التجميع حسب حقلين في وقت واحد. قرأت أنه يمكن استخدام نوع مجهول (anonymous type)، لكني لا أفهم كيف يمكن الوصول إلى المفتاح (key) وكيفية جمع Quantity وPrice بشكل صحيح في كل مجموعة. أرجو إرشادي حول كيفية كتابة استعلام LINQ بشكل صحيح للتجميع حسب CustomerId وProductId.