Setting anonymous type property name

后端 未结 2 1387
盖世英雄少女心
盖世英雄少女心 2020-12-18 17:41

Let\'s say I have the following piece of code:

string SomeConst = \"OtherName\";
var persons = GetPersons(); //returns list of Person
var q = persons.Select(         


        
相关标签:
2条回答
  • 2020-12-18 18:17

    You can't do that. The names of the properties of an anonymous type must be known at compile time. Why exactly do you need to do that?

    You could achieve a similar effect by creating a sequence of dictionaries instead of anonymous objects:

    string SomeConst = "OtherName";
    var persons = GetPersons(); //returns list of Person
    var q = persons.Select(p => 
    new Dictionary<string, string>
    {
        { SomeConst, p.Name }
    });
    
    0 讨论(0)
  • 2020-12-18 18:38

    The only way I'm aware of you can dynamically add properties whose name is unknown at compile time is the ExpandoObject :

    var q = persons.Select(p => { dynamic obj = new ExpandoObject(); obj.Name = p.Name; return obj; });
    

    But I really don't see any interest in doing such a thing. It is most probably a very bad design/idea to do so. You will undoubtly create more awkward, unreadable and unmaintenable code than you will solve anything...

    0 讨论(0)
提交回复
热议问题