如何使用变量的值作为c#中的键来声明匿名类型?

Meh*_*nce 0 c# linq

无论如何都有成功的样本吗?

string[] columns = ["a","b","c","d"];
var headers = from column in columns
select new
{
  title = column,
  filter = new  { column = "select" },
  show = true
}; 
Run Code Online (Sandbox Code Playgroud)

调试此代码块后,我看到header.filter.column属性.我怎么看header.filter.a

Sef*_*efe 5

这是不可能的,因为任何匿名类型都是匿名的,但它们在编译时仍然存在.因此,您无法使用运行时成员名称创建匿名类.你实际做的是设置一个名为columnvalue 的属性"select".

你可以做的是从你的结果创建一个字典并使用字典访问数据:

var headerFilterDictionary = headers.ToDictionary(item => item.title, item => item.filter.column);

var columnFilterValue = headerFilterDictionary["a"];
Run Code Online (Sandbox Code Playgroud)