c# - ListView 的检查包含特定数字

标签 c# listview

我有以下问题:我想检查我的 ListView 中是否已经存在预订编号。

我有以下代码可以将预订添加到 ListView 。

 reservations.Add(new Reservation(nameTextbox.Text, lastnameTextBox.Text, gendercomboBox.SelectedText, Convert.ToInt32(ageNumericUpDown.Value), Convert.ToInt32(kamercomboBox.SelectedIndex) + 1, Convert.ToInt32(quantityUpDown.Value), true));
 reserveringListView.Items.Clear();
 foreach (Reservation reservation in reservations)
 {
     if (!reserveringListView.Items.Contains(reservation.roomnumber))
     {
         ListViewItem livi = new ListViewItem(reservation.name);
         livi.SubItems.Add(reservation.lastname);
         livi.SubItems.Add(Convert.ToString(reservation.gender));
         livi.SubItems.Add(Convert.ToString(reservation.age));
         livi.SubItems.Add(Convert.ToString(reservation.quantity));
         livi.SubItems.Add(Convert.ToString(reservation.roomnumber));
         reserveringListView.Items.Add(livi);
     }
     else
     {
         MessageBox.Show("Its impossible to reserve")
     }
}

当我尝试测试此代码时出现以下错误:无法从 int 转换为 System.Windows.Forms.ListViewItem

最佳答案

您应该更改您的 if 语句,因为您检查 ListView.Items 是否包含 int。你不能这样做,而且,在 if 中,你将 roomnumber 添加为 string (但你检查它是否在 ListView .Items 作为 int)。您的 if 语句应该是:

if (!reserveringListView.Items.Cast<ListViewItem>().Any((i) => i.SubItems[5].Text == Convert.ToString(reservation.roomnumber)))

也许我在 SubItems 中弄错了索引。您应该检查一下,如果有错误请发表评论。

关于c# - ListView 的检查包含特定数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41483019/

相关文章:

c# - 游戏中的控制台式界面

c# - 如何在不中断 async/await 的情况下创建 HttpWebRequest?

javascript - 在WinJS.UI.ListView中设置滚动位置

android - 使用arrayadapter向 ListView 动态添加项目

c# - 对象不能从 DBNull 转换为其他类型? C#

c# - 在 Mono 上测试文件权限

c# - 使用 Html Agility Pack 解析表格

android - 当我在 Android 上滚动 ListView 时复选框未选中

android - gridlayout 中的 Nativescript 标签没有得到链式 react

listview - yii2中如何使用显示两个表的数据