我要用矩阵填充一个组合框
矩阵:
object[,] codes = new object[,] {
{ "1", "BANK S/A" },
{ "2", "BANK Center" },
{ "3", "BANK AMAZON S/A" }}; 填充我的组合框:
comboBank.DataSource = codes;
comboBanco.DataBind();但是在我的组合框里出现了
1
BANK S/A
2
Bank Center
3
Bank Amazon S/A我要用名称填充这个组合框,而不是ID,在这些组合框的值属性中,我要ID。
我想在我的组合框里做什么
Bank S/A
Bank Center
Bank Amazon S/A我怎么能这么做?
发布于 2013-06-04 17:39:03
下面是一个简单的帮助方法,您可以使用它从二维数组中获取一个列:
public static IEnumerable<T> GetColumn<T>(T[,] array, int column)
{
for (int i = 0; i < array.GetLength(0); i++)
yield return array[i, column];
}使用它,您只需将代码修改为:
comboBank.DataSource = codes.GetColumn(1);尽管如此,这里真正的问题是,当您真正应该拥有的是包含int和字符串的某个对象的一维数组时,您使用的是多维数组。
public class Code
{
public int ID { get; set; }
public string Name { get; set; }
}Code[] codes = new Code[]{
new Code(){ID=1, Name="BANK S/A"},
new Code(){ID=2, Name="BANK Center"},
new Code(){ID=3, Name="BANK AMAZON S/A"},
};有了强类型数组之后,可以使用Select选择要显示的属性,也可以设置组合框的DisplayMember。
发布于 2013-06-04 17:40:06
也许你可以试试这样的方法:
List<dynamic> list = new List<dynamic>();
for(int i = 0; i < codes.Lenght; i++)
list.Add(new { Value = code[i][0], Text = code[i][1] });
comboBox.DataSource = list;
comboBox.DisplayMember = "Text";
comboBox.ValueMember = "Value"; https://stackoverflow.com/questions/16924073
复制相似问题