public class Class{
    public string First{get;set;}
    public string Second{get;set;}
}

यह मेरी सरल कक्षा है। फिर मैं इस वर्ग के साथ एक सूची बनाता हूं। मैं उदाहरण के लिए इस वर्ग से फ़ील्ड प्राप्त करने के लिए अपने चर स्ट्रिंग का उपयोग करना चाहता हूं:

var myRecord = new List<class>();
// add...
string myString = "Second";
var somethinf = myRecord.Where(i => i.myString == something)

इस क्षेत्र को Second myString से प्राप्त करने का एक तरीका है

0
sidron 13 नवम्बर 2015, 14:16

2 जवाब

सबसे बढ़िया उत्तर

इसे पूरा करने के लिए आप परावर्तन का उपयोग कर सकते हैं:

 var somethinf = myRecord.Where(prop => ((string)typeof(Class).GetProperty("Second").GetValue(prop)) == something);

कृपया इस फ़ेल्ड को देखें।

2
Christos 13 नवम्बर 2015, 11:26

परावर्तन से बचते हुए, एक सरल तरीका यह हो सकता है कि आप अपनी कक्षा को केवल एक शब्दकोष बनायें:

public class Class
{
    private Dictionary<string, string> _dictionary;

    public Class()
    {
        _dictionary = new Dictionary<string, string>()
        {
            { "First", "Foo" },
            { "Second", "Bar" }
        };
    }

    public string this[string key]
    {
        get { return _dictionary[key]; }
        set { _dictionary[key] = value; }
    }
}

तब आपको वह डेटा मिल सकता है जिसकी आपको आवश्यकता है:

var myRecords = new List<Class>();
// ...
string variableString = "Second", valueString = "Foo";
var results = myRecords.Where(x => x[variableString] == valueString);
0
TVOHM 13 नवम्बर 2015, 11:41