c# - 列表框重复项

标签 c# asp.net button textbox listbox

我在使用列表框时遇到问题。
如果我有一个文本框和一个将数据放入列表框中的添加按钮。
不小心输入了两次相同的名字。
如何防止列表框中出现重复项?
我是否将代码输入到按钮部分或列表框下?

最佳答案

您可以在添加之前简单地检查它是否已经存在,例如使用 Linq:

bool contains = lbName.Items.Cast<ListItem>()
    .Any(li => li.Text.Equals(txtName.Text, StringComparison.OrdinalIgnoreCase));
if(!contains)
{
    lbName.Items.Add(new ListItem(txtName.Text));
}

假设您要不区分大小写进行比较。

编辑由于您实际上想要将完整的文件路径添加到ListBox,但您希望防止添加具有相同文件名的第二个文件,因此您可以使用Path类:

string fullFilePath = .... 
string fileName = Path.GetFileName(fullFilePath);
bool contains = lbName.Items.Cast<ListItem>()
    .Any(li => Path.GetFileName(li.Text).Equals(fileName, StringComparison.OrdinalIgnoreCase));
if (!contains)
{
    lbName.Items.Add(new ListItem(fullFilePath));
}

关于c# - 列表框重复项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15133891/

相关文章:

c# - 如何让代码块在变量更改时运行?

c# - 更新面板内的异步文件上传和触发回发的下拉列表不起作用

asp.net - 获取IP地址

公共(public)变量 .NET 中的 C# 枚举

c# - 无法定义使用动态的类或成员,因为编译器需要类型

asp.net - 为什么我想将 UnitOfWork 与存储库模式一起使用?

Android - XML 按钮丢失了吗?

Javascript 和 HTML 按钮不起作用?

java - 从函数内启用 Android 应用程序按钮

c# - MetroCircleButton 中的 MahApps Metro 徽章