2017-09-27 60 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

好的,謝謝你的幫助。 –