C#和匿名对象的数组

Yev*_*hen 48 .net c# asp.net arrays anonymous-types

这样的表达是什么意思?

obj.DataSource = new[]
{
    new {Text = "Silverlight", Count = 10, Link="/Tags/Silverlight" },
    new {Text = "IIS 7", Count = 11, Link="http://iis.net" },
    new {Text = "IE 8", Count = 12, Link="/Tags/IE8" },
    new {Text = "C#", Count = 13, Link="/Tags/C#" },
    new {Text = "Azure", Count = 13, Link="?Tag=Azure" }
};
Run Code Online (Sandbox Code Playgroud)

特别是这些行:new {Text ="IIS 7"...}

如何手动创建这样的数组以适应此DataSource.

sta*_*ica 61

首先,让我们重新格式化一下代码:

obj.DataSource = new[]
{
    new {  Text = "Silverlight",  Count = 10,  Link = "/Tags/Silverlight"  },
    new {  Text = "IIS 7",        Count = 11,  Link = "http://iis.net"     }, 
    new {  Text = "IE 8",         Count = 12,  Link = "/Tags/IE8"          }, 
    new {  Text = "C#",           Count = 13,  Link = "/Tags/C#"           },
    new {  Text = "Azure",        Count = 13,  Link = "?Tag=Azure"         } 
};
Run Code Online (Sandbox Code Playgroud)

这看起来不像是一个多维数组,而是一个包含5个对象的数组.数组中的这些对象是匿名类型,使用创建和初始化new { ... }.

关于你的问题如何手动创建这样一个数组以适应数据源:你似乎正在用上面的代码完成这个.

  • 像其他人一样正确回答.+1用于鼓励正确格式化. (3认同)

Mar*_*ers 40

那不是一个多维数组.这是使用具有匿名类型的对象初始值设定项创建的对象数组.


Kri*_*use 5

看起来像一个匿名类型的数组。

http://msdn.microsoft.com/en-us/library/bb397696.aspx