.net 将字典值绑定到DataGridView

.net 将字典值绑定到DataGridView,.net,data-binding,datagridview,idictionary,.net,Data Binding,Datagridview,Idictionary,我有一个列表(MyClass)作为DataGridView控件的数据源,这非常有效。为MyClass中的每个公共属性自动创建了一列 我决定让列表由字符串索引,因此我将其更改为Dictionary(Of string,MyClass),当然数据绑定不再有效 我尝试了数组()、ToList()、Values()等。。。但这些都不会以适当的结构返回数据,以便在DataGridView中正确显示 有没有一种简单的方法可以将字典中的ValueCollection转换为MyClass的某种可枚举列表?或者有

我有一个
列表(MyClass)
作为DataGridView控件的数据源,这非常有效。为MyClass中的每个公共属性自动创建了一列

我决定让列表由字符串索引,因此我将其更改为
Dictionary(Of string,MyClass)
,当然数据绑定不再有效

我尝试了数组()、ToList()、Values()等。。。但这些都不会以适当的结构返回数据,以便在DataGridView中正确显示

有没有一种简单的方法可以将字典中的ValueCollection转换为MyClass的某种可枚举列表?或者有人能提出比字典更好的数据结构吗


谢谢。

为了数据绑定的目的,我目前通过从字典中填充一个新列表来实现这一点。这足以满足我当前的需要,但显然效率低下

        Dim ds As New List(Of MyClass)
        For Each v As Object In MyDictionary
            ds.Add(v.value)
        Next
        DataGridView1.DataSource = ds

我确信有更好的解决方案,因此仍然欢迎其他答案。

可能重复@Junaith的内容,谢谢链接。我看到了那个问题。但它并没有完全回答我的问题。在这种情况下,他们只使用一个属性。主要答案相当复杂,代码示例也没有得到很好的解释。我尝试了其他一些建议,但未能将其扩展到处理多个属性。(它是C#而不是VB没有帮助,而且我对Linq的经验有限)。此外,它没有解决我问题的第二部分,即,是否有一个更合适的数据结构,我可以使用,而不是字典?