4

ListBoxsアイテムがセットになったものを2つ持っています。それぞれListBoxsの数は同じでも異なっていてもかまいません。数が同じ場合は、それらの間のアイテムListBoxsが同じかどうかを確認したいと思います。項目は、以下に示すように並べ替えたり、並べ替えたりすることができます。

ListBox1 = { "C++", "C#", "Visual Basic" };
ListBox2 = { "C#", "Visual Basic", "C++" };

親切に助けてください。

4

3 に答える 3

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));
于 2012-09-08T08:19:40.027 に答える
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);
于 2012-09-08T08:38:31.300 に答える
2

これら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");
}
于 2012-09-08T08:27:09.037 に答える