zer*_*law 1 c# linq dynamic object
在 C# 中,我需要创建一个返回一个对象的函数,该对象可能包括:
{ itemID: "A1", itemDesc: "apple" }
Run Code Online (Sandbox Code Playgroud)
或者
{ groupID: "G1", groupDesc: "group1" } ..etc
// Please don't be concerned about why don't create another function for this,
// or why don't consider 'ID' instead.
Run Code Online (Sandbox Code Playgroud)
我好奇。原因是,这在 javascript 中很简单,因为您可以将任何键分配给一个对象,而无需预先定义它。
然而,当谈到 C# 时,我感到困惑。
这可能吗?
编辑:
对不起,我应该更清楚地说明问题(所以它可能不是“重复”)
我的函数实际上返回一个类,如下所示:
public class MyClass
{
public int myKey {get;set;}
public List<customClass> listRecord {get;set;}
}
Run Code Online (Sandbox Code Playgroud)
这customClass是我所指的动态“对象”。请注意,记录是从 LINQ 查询的。
感谢您的建议,但我似乎无法做到这一点:
var result = (from a in db.MyTable
select new System.Dynamic.ExpandoObject()
{
....
Run Code Online (Sandbox Code Playgroud)
我也不能 select new dynamic
您可能需要 ExpandoObject 类:
dynamic temp = new ExpandoObject();
temp.member1= "aha";
temp.member2= 1234;
Run Code Online (Sandbox Code Playgroud)
https://msdn.microsoft.com/en-us/library/system.dynamic.expandoobject(v=vs.110).aspx
匿名类一旦定义就无法更改。ExpandoObject 更接近 javascript 对象。