我想循环遍历一个人物对象列表,每个人都有一些不同的品质,比如一个人有一本书,另一个人有一张桌子,但所有人都有相同的名字,身份证,电子邮件,和姓氏。当我遍历它时,它会将每个具有不同质量的人添加到我的组合框中。我只希望它将一个人的.ToString添加到组合框中。我希望能够使用combobox.selectedItem来获取该项目的质量。这是我的代码:
foreach (Person personObj in _listAllData)
{
if (!cboSelectClient.Items.Contains(personObj.ID))
{
cboSelectClient.Items.Add(personObj.ToString());
}
}
任何建议都会有所帮助,而不是提前。
答案 0 :(得分:0)
如果我理解你正在尝试做的事情:
cboSelectClient.Items.Add(personObj.ToString());
将整个人物Object表示为单个字符串添加到组合框中。
在if
子句中,您只检查person对象的ID
。
因此,您的if
子句正在查找仅与该人的ID
匹配的字符串,但您的组合框包含列为ID + other details of the person
的元素。它们永远不会匹配,除非某些人物对象只在组合框中列出了他的“ID”。
您可能必须遍历组合框中的每个项目,并检查每个项目是否具有您要查找的子ID作为子字符串。
答案 1 :(得分:0)
这个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());
}
}