का उपयोग कर वर्ग गुणों पर इटरेटिंग एक पार्सड टेम्पलेट क्लास है जिसमें 300 से अधिक संपत्ति (टाइप विवरण और ब्लॉक विवरण) हैं। पार्सड टेम्पलेट ऑब्जेक्ट फ़ंक्शन द्वारा भर दिया जाएगा। इस ऑब्जेक्ट को भरने के बाद मुझे "बॉडी" या "आईएमजी" जैसी कोई संपत्ति खोजने के लिए LINQ (या अन्य तरीका) की आवश्यकता है जहां IsExist=false
और Priority="high"
है।LINQ
bool isMatching = (from prop in typeof(ParsedTemplate).GetProperties()
where typeof(Details).IsAssignableFrom(prop.PropertyType)
let val = (Details)prop.GetValue(parsedTemplate, null)
where val != null && !val.IsExist && val.Priority == "high"
select val).Any();
काम करता है:
public class Details
{
public bool IsExist { get; set; }
public string Priority { get; set; }
}
public class BlockDetails : Details
{
public string Block { get; set; }
}
public class ParsedTemplate
{
public BlockDetails body { get; set; }
public BlockDetails a { get; set; }
public Details img { get; set; }
...
}
यह वास्तव में करने के लिए आसान है प्रतिबिंब के साथ करें, लेकिन मुझे नहीं पता कि LINQ कैसे उपयोगी होगा। LINQ के साथ हर समस्या को हल करने का प्रयास क्यों करता है? – cadrell0
@ cadrell0 क्योंकि लोग सोचते हैं कि LINQ एक रजत बुलेट – sloth
@ cadrell0 है और उन सभी अजीब वाक्यविन्यास जो कि लेजर सामान को केवल LINQ – sloth