Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/271.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# foreach循环将项目添加到组合框_C#_List_Loops_Foreach - Fatal编程技术网

C# foreach循环将项目添加到组合框

C# foreach循环将项目添加到组合框,c#,list,loops,foreach,C#,List,Loops,Foreach,我想循环浏览一个person对象列表,每个人都有一些不同的品质,比如一个人有一本书,另一个人有一个表,但所有人都有相同的姓名、id、电子邮件和姓氏。当我循环浏览它时,它会将每个具有不同品质的人添加到我的组合框中。我只想在组合框中添加一个人的.ToString。我希望以后能够使用combobox.selectedItem获得该项目的质量。这是我的密码: foreach (Person personObj in _listAllData) { if (!cboSelectClient.Ite

我想循环浏览一个person对象列表,每个人都有一些不同的品质,比如一个人有一本书,另一个人有一个表,但所有人都有相同的姓名、id、电子邮件和姓氏。当我循环浏览它时,它会将每个具有不同品质的人添加到我的组合框中。我只想在组合框中添加一个人的.ToString。我希望以后能够使用combobox.selectedItem获得该项目的质量。这是我的密码:

foreach (Person personObj in _listAllData)
{
    if (!cboSelectClient.Items.Contains(personObj.ID))
    {
        cboSelectClient.Items.Add(personObj.ToString());
    }
}

任何建议都会有帮助,thanx提前。

如果我了解您正试图正确执行的操作:

cboSelectClient.Items.Add(personObj.ToString());
将表示为单个字符串的整个person对象添加到组合框中。 在
if
子句中,您只检查person对象的
ID

因此,您的
if
子句正在查找一个仅与此人的
ID
匹配的字符串,但您的组合框包含列为
ID+此人的其他详细信息的元素。除非某个人对象在组合框中只列出了他的“ID”,否则它们永远不会匹配


您可能需要遍历组合框中的每个项目,并检查每个项目是否具有您正在寻找的作为子字符串的“ID”。

此linq将能够帮助您

 Foreach (var personObj in _listalldata.group(v=>v.id).select(s=>new { id = s.First().id}).tolist())
  {
                if (!cboSelectClient.Items.Contains(personObj.id))
                {
                    cboSelectClient.Items.Add(personObj.id.ToString());
                }
            }

如果只将
ToString
方法的结果放入组合框中,
SelectedItem
将只包含字符串。但是,请注意,默认情况下,您应该能够将person对象本身添加到组合框中(然后该组合框将自动显示其
ToString
返回值);它将所有人添加到我的ComboBox中,我只希望它显示其中一人