C# 列表框多个选项不同的描述错误

C# 列表框多个选项不同的描述错误,c#,winforms,listbox,user-controls,C#,Winforms,Listbox,User Controls,我已经创建了一个列表框,其中应该有多个选项,通过选择其中一个选项,将在标签中显示所选选项的描述,这区别于不同的选项 我想出了这个密码: public Form1() { InitializeComponent(); listBox1.DataSource = choices; listBox1.DisplayMember = "name"; }

我已经创建了一个列表框,其中应该有多个选项,通过选择其中一个选项,将在标签中显示所选选项的描述,这区别于不同的选项

我想出了这个密码:

       public Form1()
        {
            InitializeComponent();

            listBox1.DataSource = choices;              
            listBox1.DisplayMember = "name"; 
        }

        private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
        {

            label1.Text = valikud.ElementAt(listBox1.SelectedIndex).description;
        }

        List<dynamic> choices = new List<dynamic>()
        {
            new {

                name = "Choice 1",
                description = "Description 1"
            },
            new {
                name = "Choice 2",
                description = "Description 2"
            }
        };
    }
}
错误状态为:

错误CS1980无法定义使用“dynamic”的类或成员,因为找不到编译器所需的类型“System.Runtime.CompilerServices.DynamicAttribute”。你错过了推荐人吗

更新:问题是由于我的.net framework版本过时,我在3.0之前更新到了4.6

但现在,这引发了一个新问题,即:

 private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
        {

            label1.Text = *choices.ElementAt(listBox1.SelectedIndex)*.description;
        }
错误状态为:

错误CS0656缺少编译器所需的成员“Microsoft.CSharp.RuntimeBinder.CSharpArgumentInfo.Create”

我怎样才能解决这个问题?
-谢谢

您需要检查出现此错误的项目的框架版本

.NET Framework 4.0或更高版本支持动态关键字和类型


确保项目的目标框架为4.0或更高版本,这样就可以解决您的问题。

我认为这是项目目标框架的问题。项目的框架版本是什么?@ChetanRanpariya 3.5我想我更新了我的答案。对于前面的回答,我深表歉意。我安装了所需的框架版本,但错误仍然存在。您的项目是否指向正确的版本?你安装了哪个版本?所以我解决了这个问题,这个项目没有针对正确的.net版本,但这导致了一个新问题,我将把它编辑到postBetter你最好问另一个问题,而不是修改它
 private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
        {

            label1.Text = *choices.ElementAt(listBox1.SelectedIndex)*.description;
        }