C# 是否可以将listbox数据源设置为List<;元组<;字符串,字符串,int>&燃气轮机;只有第1项?
我有 问题是它显然会将([string]、[string]、[int])添加到列表框中,但我只想添加元组的第一项。可能吗 我可以用C# 是否可以将listbox数据源设置为List<;元组<;字符串,字符串,int>&燃气轮机;只有第1项?,c#,list,tuples,datasource,C#,List,Tuples,Datasource,我有 问题是它显然会将([string]、[string]、[int])添加到列表框中,但我只想添加元组的第一项。可能吗 我可以用 listBox1.DataSource = GlobalVariables.PopFile; foreach(GlobalVariables.PopFile中的元组i) { 列表框1.Items.Add(i.Item1); } 但是我更喜欢.DataSource。最后,您无法真正避免循环,或者从元组对象中单独添加数据,或者创建一个新对象绑定到列表框 除非您自己扩
listBox1.DataSource = GlobalVariables.PopFile;
foreach(GlobalVariables.PopFile中的元组i)
{
列表框1.Items.Add(i.Item1);
}
但是我更喜欢.DataSource。最后,您无法真正避免循环,或者从元组对象中单独添加数据,或者创建一个新对象绑定到列表框 除非您自己扩展Listbox对象以便能够适当地处理它,否则Listbox没有输入参数来接收元组对象,但即使这样,您仍然必须执行与上面的循环类似的操作
foreach (Tuple<string, string, int> i in GlobalVariables.PopFile)
{
listBox1.Items.Add(i.Item1);
}
林克可能会派上用场
listBox1.DataSource = GlobalVariables.PopFile;
listBox1.DisplayMember = "Item1";
listBox1.ValueMember = "Item3"; // optional
这是ASP.NET WebForms还是WinForms?使用
ListBox.DisplayMember
属性。对于.PopFile.ConvertAll(t=>t.Item1),List有更有效的方法代码>
listBox1.DataSource = GlobalVariables.PopFile;
listBox1.DisplayMember = "Item1";
listBox1.ValueMember = "Item3"; // optional
listBox1.DataSource = GlobalVariables.PopFile.Select(t => t.Item1).ToList()