首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否有一种方法将两个值连接在两个单独的列表框中?

是否有一种方法将两个值连接在两个单独的列表框中?
EN

Stack Overflow用户
提问于 2013-11-24 20:59:04
回答 1查看 112关注 0票数 1

我正在构建一个小应用程序,它接受描述学生和顾问的信息作为输入。我为每个对象创建了一个类,一旦输入信息,两个对象都存储在单独的列表框中。问题是,我必须将学生班的实例与顾问班的实例联系起来,而我甚至不知道从哪里开始。每个学生只能有一个顾问,但一个顾问可以与许多学生一起工作。

我想我必须为顾问创建一个ID#,因为现在我只从他们那里收集字符串信息,使用一个数字可能更容易。我对面向对象编程很陌生。我该从哪里开始?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-11-24 21:07:00

Linq将帮助您一起参加您的课程。

代码语言:javascript
复制
    private void ListBox1_SelectedValueChanged(object sender, EventArgs e)
    {
        if (ListBox1.SelectedIndex != -1)
        {
            var joined = (from s in Students
                          join a in Advisers on s.AdvisorsID equals a.AdvisorsID 
                          where a.AdvisorsID == ((Advisor)ListBox1.SelectedItem).AdvisorID
                          select new {a, s});
        }
    }

这将为您提供一个对象,您可以循环使用该对象或将其用作UI对象的数据源。

但是,您需要一些公共字段来将它们连接在一起。使用@Ryans关于关系数据的答案是很有帮助的,如果您要将您的信息从/到数据库。

编辑:我刚刚在标题中注意到了Listbox。这样做的习惯方式是拥有一个具有ID和文本值的数据源。

设置数据源:

代码语言:javascript
复制
listbox.DataSource = Students;

ID设置为Listbox的ValueMember属性:

代码语言:javascript
复制
listbox.ValueMember = "StudentID";

然后分别到显示值:

代码语言:javascript
复制
listbox.DisplayMember = "StudentName";

然后,您可以使用上面的LINQ代码从结构中提取正确的一个。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20180924

复制
相关文章

相似问题

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