首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >用矩阵填充组合框

用矩阵填充组合框
EN

Stack Overflow用户
提问于 2013-06-04 17:36:19
回答 2查看 1.3K关注 0票数 0

我要用矩阵填充一个组合框

矩阵:

代码语言:javascript
运行
复制
object[,] codes = new object[,] { 
            { "1", "BANK S/A" }, 
            { "2", "BANK Center" }, 
            { "3", "BANK AMAZON S/A" }}; 

填充我的组合框:

代码语言:javascript
运行
复制
comboBank.DataSource = codes;
comboBanco.DataBind();

但是在我的组合框里出现了

代码语言:javascript
运行
复制
1
BANK S/A
2
Bank Center
3
Bank Amazon S/A

我要用名称填充这个组合框,而不是ID,在这些组合框的值属性中,我要ID。

我想在我的组合框里做什么

代码语言:javascript
运行
复制
Bank S/A
Bank Center
Bank Amazon S/A

我怎么能这么做?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-06-04 17:39:03

下面是一个简单的帮助方法,您可以使用它从二维数组中获取一个列:

代码语言:javascript
运行
复制
public static IEnumerable<T> GetColumn<T>(T[,] array, int column)
{
    for (int i = 0; i < array.GetLength(0); i++)
        yield return array[i, column];
}

使用它,您只需将代码修改为:

代码语言:javascript
运行
复制
comboBank.DataSource = codes.GetColumn(1);

尽管如此,这里真正的问题是,当您真正应该拥有的是包含int和字符串的某个对象的一维数组时,您使用的是多维数组。

代码语言:javascript
运行
复制
public class Code
{
    public int ID { get; set; }
    public string Name { get; set; }
}

代码语言:javascript
运行
复制
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

票数 1
EN

Stack Overflow用户

发布于 2013-06-04 17:40:06

也许你可以试试这样的方法:

代码语言:javascript
运行
复制
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"; 
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16924073

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档