如何比较两个列表框项并添加到列表框中常见的组合框 [英] how to compare two listbox items and add to anthor combo box which are common in listboxes

查看:101
本文介绍了如何比较两个列表框项并添加到列表框中常见的组合框的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我是C#的新手.我有两个`ListBoxes`

1个列表框-> lbFirstTableColumns
2列表框-> lbSecondTableColumns
组合框-> cmbJoinColumn

现在我想比较两个ListBox项并添加到我的Listboxes中常见的cmbJoinColumn中.

我尝试了以下代码,但未给出任何结果

公共无效AddJoinColumns()
{
试试
{
List< string> lstArray = new List< string>();
//将每个项目添加到lstarray
for(int index = 0; index< lbFirstTableColumns.Items.Count; index ++)
{
lstArray.Add(lbFirstTableColumns.Items [index] .ToString());
}
//比较第二个列表框中的每个列表数组项(如果有任何匹配的副本复制到组合框中)
foreach(lstArray中的字符串str)
{
MessageBox.Show(str);
如果(lbSecondTableColumns.Items.Contains(str))
{
cmbJoinColumn.Items.Add(str);
}
}
}
catch(ex ex例外)
{
MessageBox.Show(ex.Message);
}
}

I am new to C#. I have two `ListBoxes`

1 listbox --> lbFirstTableColumns
2 listbox --> lbSecondTableColumns
combo Box --> cmbJoinColumn

now I want compare two `ListBox` items and add to `cmbJoinColumn` which are common in my `Listboxes`

I have tried following code but it doesn''t give any result

public void AddJoinColumns()
{
try
{
List<string> lstArray = new List<string>();
//add each items to lstarray
for (int index = 0; index < lbFirstTableColumns.Items.Count; index++)
{
lstArray.Add(lbFirstTableColumns.Items[index].ToString());
}
//compare each listarray item in second listbox if any matching copy into combo box
foreach (string str in lstArray)
{
MessageBox.Show(str);
if (lbSecondTableColumns.Items.Contains(str))
{
cmbJoinColumn.Items.Add(str);
}
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}

推荐答案

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace WindowsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void bttnAdd_Click(object sender, EventArgs e)
        {
            for (int __k = 0; __k < lst_1.Items.Count; __k++)
            {
                if (lst_2.Items.Contains(lst_1.Items[__k]))
                    cbo.Items.Add(lst_1.Items[__k]);
            }
        }
    }
}


使用System.Linq

by using System.Linq

var list1 = lbFirstTableColumns.Items.Cast<string>();
var list2 = lbSecondTableColumns.Items.Cast<string>();


cbo.DataSource = list1.Intersect(list2);


这篇关于如何比较两个列表框项并添加到列表框中常见的组合框的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆