我有2个ListBoxs
,其中包含一组项目。每个ListBoxs
之间的计数可以相同或不同,如果计数相同,我想检查ListBoxs
之间的项是否相同。物品可能无序或有序,如下所示:
ListBox1 = { "C++", "C#", "Visual Basic" };
ListBox2 = { "C#", "Visual Basic", "C++" };
请帮助。
答案 0 :(得分:5)
你可以使用Linq的All函数
var ListBox1 = new string[] { "C++", "C#", "Visual Basic" };
var ListBox2 = new string[] { "C#", "Visual Basic", "C++" };
bool same = ListBox1.Length == ListBox2.Length
&& ListBox1.All(s => ListBox2.Contains(s));
答案 1 :(得分:4)
您可以简单地使用HashSet:
var hashSet1 = new HashSet<string> { "C++", "C#", "Visual Basic" };
var hashSet2 = new HashSet<string> { "C#", "Visual Basic", "C++" };
var result = hashSet1.SetEquals(hashSet2);
答案 2 :(得分:2)
我假设这两个是两个列表框控件
if (ListBox1.Items.Count == ListBox2.Items.Count)
{
string[] listbox1arr = ListBox1.Items.OfType<string>().ToArray();
string[] listbox2arr = ListBox2.Items.OfType<string>().ToArray();
bool flag = listbox1arr.Intersect(listbox2arr).Count() > 0;
MessageBox.Show(flag : "Items are not same" : "Items are same");
}