在C#3.0中,您可以使用以下语法创建匿名类
var o1 = new { Id = 1, Name = "Foo" };
Run Code Online (Sandbox Code Playgroud)
有没有办法动态地创建这些匿名类到变量?
例:
var o1 = new { Id = 1, Name = "Foo" };
var o2 = new { SQ = 2, Birth = DateTime.Now };
Run Code Online (Sandbox Code Playgroud)
动态创建示例:
var o1 = DynamicNewAnonymous(new NameValuePair("Id", 1), new NameValuePair("Name", "Foo"));
var o2 = DynamicNewAnonymous(new NameValuePair("SQ", 2), new NameValuePair("Birth",
DateTime.Now));
Run Code Online (Sandbox Code Playgroud)
因为我需要这样做:
dynamic o1 = new ExpandObject();
o1."ID" = 1; <--"ID" is dynamic name
o1."Name" = "Foo"; <--"Name" is dynamic name
Run Code Online (Sandbox Code Playgroud)
和Scene1:
void …Run Code Online (Sandbox Code Playgroud) 我有这个简单的数据表:
type (string) | cnt (int)
_____________________________________
aaa 1
aaa 2
aaa 10
bbb 1
bbb 1
Run Code Online (Sandbox Code Playgroud)
我想生成这样的1个匿名类型:
{
sumAAA= 13 , sumBBB=2 //13=1+2+10....
}
Run Code Online (Sandbox Code Playgroud)
类似的东西:(伪代码)
var obj= dt.AsEnumerable().Select(f=> new { sumAAA =f.sumOfCntOfAaa , sumBBB =f.sumOfCntOfBbb });
Run Code Online (Sandbox Code Playgroud)
任何帮助?
编辑,这会对你有所帮助
DataTable dt = new DataTable("myTable");
dt.Columns.Add("cnt", typeof (int));
dt.Columns.Add("type", typeof (string));
DataRow row = dt.NewRow();
row["cnt"] = 1;
row["type"] = "aaa";
dt.Rows.Add(row);
row = dt.NewRow();
row["cnt"] = 2;
row["type"] = "aaa";
dt.Rows.Add(row);
row = dt.NewRow();
row["cnt"] = 10;
row["type"] …Run Code Online (Sandbox Code Playgroud)