如何比较两个列表框项并添加到列表框中常见的组合框 [英] how to compare two listbox items and add to anthor combo box which are common in listboxes
问题描述
我是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屋!