] हालांकि, एक समाधान है जिसमें गतिशील रूप से लैंब्डा अभिव्यक्तियों को चुनने के लिए पारित करना शामिल है। निम्नलिखित डेटा वर्ग पर विचार करें:
सार्वजनिक वर्ग डेटा { सार्वजनिक स्ट्रिंग फील्ड 1 {सेट; सार्वजनिक स्ट्रिंग फील्ड 2 {सेट; सार्वजनिक स्ट्रिंग फील्ड 3 {सेट; सार्वजनिक स्ट्रिंग फील्ड 4 {सेट; सार्वजनिक स्ट्रिंग फील्ड 5 {सेट; }
] ] { var xparameter = expression.parameter (टाइपोफ़ (डेटा), "ओ"); var xnew = expression.new (टाइपोफ़ (डेटा)); var bindings = fields.split (',') .Select (o => o.trim ()) .Select (o => { var mi = typeOf (डेटा) .getProperty (O); var xoriginal = expression.property (xparameter, mi); वापसी अभिव्यक्ति। }); var xinit = expression.memberinit (xnew, bindings); var lambda = expression.lambda
public class Data
{
public string Field1 { get; set; }
public string Field2 { get; set; }
public string Field3 { get; set; }
public string Field4 { get; set; }
public string Field5 { get; set; }
}
यह निर्दिष्ट क्षेत्र के साथ डेटा ऑब्जेक्ट का एक अनुक्रम लौटाएगा। ध्यान दें कि यह तकनीक उन स्थितियों के लिए उपयुक्त है जहां चयनित क्षेत्र संकलन समय पर ज्ञात नहीं है। यदि चयनित क्षेत्र स्थिर है, तो नियमित लैम्ब्डा अभिव्यक्तियों या प्रतिबिंब-आधारित विधियों का उपयोग करना अधिक कुशल है। अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3