2008-09-15 22 views
67

LINQ से SQL का उपयोग करना, मेरे पास ऑर्डर डिस्प्ले के संग्रह के साथ ऑर्डर क्लास है। ऑर्डर विवरण में लाइनटॉटल नामक एक संपत्ति है जो Qnty x ItemPrice प्राप्त करती है।संग्रह में आइटमों का योग

मुझे पता है कि ऑर्डर कुल खोजने के लिए डेटाबेस की एक नई LINQ क्वेरी कैसे करें, लेकिन जैसा कि मेरे पास पहले से ही डीबी से ऑर्डर डिस्प्ले का संग्रह है, क्या लाइनटॉटल के योग को सीधे से वापस करने का एक आसान तरीका है संग्रह?

मैं ऑर्डर कुल को अपनी ऑर्डर क्लास की संपत्ति के रूप में जोड़ना चाहता हूं। मुझे कल्पना है कि मैं संग्रह के माध्यम से लूप कर सकता हूं और प्रत्येक ऑर्डर के लिए राशि की गणना कर सकता हूं। ऑर्डर डेंटल, लेकिन मुझे लगता है कि एक बेहतर तरीका है।

उत्तर

151

आप योग की गणना करने के वस्तुओं और उपयोग LINQ करने के लिए LINQ कर सकते हैं:

decimal sumLineTotal = (from od in orderdetailscollection 
select od.LineTotal).Sum(); 

तुम भी लैम्ब्डा-भाव का उपयोग कर सकते हैं, जो एक सा "स्वच्छ" है क्या करना है।

decimal sumLineTotal = orderdetailscollection.Sum(od => od.LineTotal); 

फिर आप इस के लिए अपने आदेश-वर्ग के लिए इस तरह हुक कर सकते हैं अगर आप चाहते हैं:

Public Partial Class Order { 
    ... 
    Public Decimal LineTotal { 
    get { 
     return orderdetailscollection.Sum(od => od.LineTotal); 
    } 
    } 
} 
संबंधित मुद्दे