Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/31.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何将类数组的数据对象添加到下拉列表中?_C#_Asp.net_Data Binding - Fatal编程技术网

C# 如何将类数组的数据对象添加到下拉列表中?

C# 如何将类数组的数据对象添加到下拉列表中?,c#,asp.net,data-binding,C#,Asp.net,Data Binding,我有一个Person类型的数组 Person[] Traders = GetTraders(); Person类包含诸如名字、姓氏等数据对象 我想将所有名字添加到dropdownlist。我该怎么做?我试着这样做,但没有名字: ddl_traders.DataSource = traders; 编辑 Person具有以下字符串字段:FirstName、LastName、login 我希望dropdownlist显示FirstName,但该值必须是登录名。我相当肯定这是可能的,尽管我不知道如何

我有一个Person类型的数组

Person[] Traders = GetTraders();
Person类包含诸如名字、姓氏等数据对象

我想将所有名字添加到dropdownlist。我该怎么做?我试着这样做,但没有名字:

ddl_traders.DataSource = traders;
编辑

Person具有以下字符串字段:FirstName、LastName、login

我希望dropdownlist显示FirstName,但该值必须是登录名。我相当肯定这是可能的,尽管我不知道如何才能做到。有什么建议吗?

单向:

ddl_traders.DataSource = GetTraders().OfType<Person>().Select<Person, string>(p => p.FirstName).ToList<string>();
ddl_traders.DataSource=GetTraders().OfType().Select(p=>p.FirstName.ToList();

这取决于是否有名为FirstName的字符串字段。

这可能不是最好的方法,但您可以指定要显示的字段,如下所示:

    ddl_traders.DateSource = traders;
    ddl_traders.DataTextField = "FirstName";
    ddl_traders.DateValueField= "login";
    ddl_traders.DataBind();

这允许您绑定完整的Person对象,但只显示名称,并保留登录名作为值。

Person有一个名为FirstName的字符串字段。我要试一试。PS-我对这个问题做了编辑。你知道怎么做吗?我试过你的解决办法。获取此错误:错误1“System.Array”不包含“Select”的定义,并且找不到接受“System.Array”类型的第一个参数的扩展方法“Select”(是否缺少using指令或程序集引用?)@xbonez关于您的编辑,@pattertj基本上是正确的。您可以将DataTextField和DataValueField指定为字符串,并且您的数据源可能只获得getRaders()。然后,您将调用DataBind(),就像我之前展示的方法一样。我正在尝试您的解决方案,但遇到了一个愚蠢的“卷影复制”错误。一旦我解决了这个问题,我就试试你的解决方案。谢谢你。