سؤال

عنصر الفئة العامة {...}

public class Order
{
    public List<Item> Items
    ...
}

public class Customer
{
    public List<Order> Orders
    ...
}

الآن ، باستخدام LINQ ، أحتاج إلى الحصول على جميع العناصر التي اشتراها العميل. كيف يمكنني؟

حاولت شيئًا مثل var items = from o in cust.Orders select o.Items; لكن النتيجة هي IEnuberable<List<Item>> وأريد واحد فقط IEnumerable<Item>.

أطلب هنا محاولة تجنب ترميز حلقتين.

هل كانت مفيدة؟

المحلول

انت تحتاج SelectMany, ، وهو ممثل في تعبيرات الاستعلام في المرتبة الثانية (واللاحقة) from شروط:

var items = from order in customer.Orders
            from item in order.Items
            select item;

بدلاً من ذلك ، لتجاهل تعبيرات الاستعلام:

var items = customer.Orders.SelectMany(order => order.Items);
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top