2017-09-27 44 views
0

如果我有以下代码:如何从用户输入中动态更改匿名类型的属性?

Dim L = From item in _list 
Group item By item.Name 
Select New With {.Property = Name} 

的问题是: 我想在此基础上分组,分组由用户指定生成一个网格,所以.Property将是列名用户指定为分组属性已经创建分组依赖于我的原始代码中的用户,但无法使.Property依赖于此,如果用户指定按名称对列表进行分组我想要.Property.Name

那么,我想要确定.Property,有什么帮助吗?

+2

请不要不必要地标记多种语言。 – DavidG

+0

好的,谢谢,你能帮我解决我的问题吗? –

+0

您希望'.Property'的名称根据用户输入进行更改,即如果用户输入'Foo',您希望代码有效地为'Select New With {.Foo = Name}',那么正确? – djv

回答

0

匿名类型的字段必须在编译时定义,所以没有办法在运行时动态添加字段。此外,你不会知道在编译时哪些字段是可用的,所以你不能写任何对它们的代码。

我会说你应该使用不同的结构来表示数据。 A Dictionary是首先想到的类型。

+0

那么,如何使用字典来做到这一点? –

+0

您可以使用['Add'方法](https://msdn.microsoft.com/en-us/library/k7z0zy8k(v = vs.110).aspx)或[indexer ](https://msdn.microsoft.com/en-us/library/9tee9ht2(v = vs.110).ASPX?CS琅= VB)。这就是我可以给你所发布的代码的所有内容。 –

+0

好的,谢谢你的帮助。 –