有人能帮我吗?我想使用linq在组合框中显示特定列中的所有值。我试着去做,但我想不通。我是linq的新手,找不到做这件事的方法
如果您想显示字符串产品名称的列表并能够检索它们的int id,您可以例如:
combo.DisplayMember = "DisplayColumnName";
combo.ValueMember = "IdColumnName";
combo.DataSource = context.TableName.Select(r =>
new KeyValuePair<int, string>(r.IdColumnName, r.DisplayColumnName)).ToList();
您需要将TableName、DisplayColumnName和IdColumnName替换为实际值。
要获得用户选择的ID(例如用于进一步的数据库查询(,您可以:
var id = (int)combo.SelectedValue;
如果你想要用户选择的字符串:
var s = ((KeyValuePair)combo.SelectedItem).Value;
这是有效的。
var context = new LoginTest();
var login = context.SignUps
.Select(c => new { c.id, c.Name });
comboBox1.DataSource = login.ToList();
comboBox1.ValueMember = "id";
comboBox1.DisplayMember = "Name";