を使用してコンボボックスにアイテムを追加していますcomboBox.Items.Add(entry);
。しかし、どうすればコンボボックス内の重複エントリ(つまり同じ名前のエントリ)を回避できますか。lib関数はありますか
11569 次
4 に答える
12
追加する前にアイテムを確認してください。
if (!comboBox.Items.Contains(entry))
comboBox.Items.Add(entry);
于 2013-02-10T18:01:28.777 に答える
4
Items
コレクションにはContains
メソッドがあります
if (!comboBox.Items.Contains(entry)) {
comboBox.Items.Add(entry);
}
ComboBox.Items
プロパティのタイプは で、このようにメソッドSystem.Windows.Forms.ComboBox.ObjectCollection
を宣言しますContains
public bool Contains(object value)
を使用する場合AddRange
は、項目を配列で指定する必要があります。したがって、この配列に重複が含まれていないことを確認する必要があります。さらに、 にComboBox
すでに項目が含まれている場合は、この配列に同じ項目が含まれていないことを確認する必要があります。
最初に、ComboBox
が空で、アイテムが何らかの列挙型 (List<T>
たとえば、または配列) で指定されていると仮定します。
comboBox.Items.AddRange(
itemsToAdd
.Distinct()
.ToArray()
);
using System.Linq;
コードの先頭にa が必要です。また、アイテムを注文することもできます。string
私はそれらが次のタイプであると仮定します:
comboBox.Items.AddRange(
itemsToAdd
.Distinct()
.OrderBy(s => s)
.ToArray()
);
ComboBox に既にアイテムが含まれている場合は、追加されたアイテムからそれらを除外する必要があります
comboBox.Items.AddRange(
itemsToAdd
.Except(comboBox.Items.Cast<string>())
.Distinct()
.OrderBy(s => s)
.ToArray()
);
itemsToAdd
(これも文字列の列挙であると仮定します。)
于 2013-02-10T18:03:05.553 に答える
0
アイテムをキャストするのはどうですかString
var check = comboBox1.Items.Cast<string>().Any(c => c.ToString() == "test");
于 2013-02-11T16:14:43.180 に答える