खैर जब तक प्रत्येक ऑब्जेक्ट के गुणों अज्ञात नहीं are internally खुद को आप यह कर सकता है: वहाँ एक रास्ता मैं एक LINQ कि कुछ इस तरह करना होगा कर सकते हैं।
वहाँ, एक गतिशील वस्तु के सभी गुणों का परीक्षण करने के लिए आप पर DynamicObject
आप आशा implementer कार्यान्वित GetDynamicMemberNames()
और आप getting the property names के लिए nuget पैकेज ImpromptuInterface के तरीकों का उपयोग कर सकते हैं और नियंत्रण नहीं है, तो एक महान सामान्य तरीका नहीं है dynamically invoking those names।
return allItems.Where(x=> Impromptu.GetMemberNames(x, dynamicOnly:true)
.Any(y=>String.IsNullOrWhiteSpace(Impromptu.InvokeGet(x,y));
अन्यथा, यह अपने स्वयं के प्रकार MyType
आप अपने खुद के विधि है कि उन सदस्य मूल्यों के लिए आंतरिक लेखा देख सकते हैं जोड़ सकते हैं के बाद से।
return allItems.Where(x => x.MyValues.Any(y=>String.IsNullOrWhitespace(x));
ऐसे अन्य प्रकार हैं जिनमें अज्ञात गुण हो सकते हैं, जैसे 'ExpandoObject'। यदि आप 'डायनामिक ऑब्जेक्ट 'के बजाय' ExpandoObject' का उपयोग कर सकते हैं तो आपका जीवन परिमाण के आदेशों का आसान होगा। – dasblinkenlight
मुझे यह जांचना होगा कि यूआई नियंत्रण है कि मैं समर्थन का उपयोग कर रहा हूं ExpandoObject, लेकिन यदि वे करते हैं, तो मुझे डायनामिक ऑब्जेक्ट से ExpandoObject में संक्रमण करने में कोई समस्या नहीं है। सवाल यह है कि, क्या मैं सूची के साथ linq क्वेरी से ऊपर कर सकता हूं? –
Goran