查找列表中的重复项

本文关键字:列表 查找 | 更新日期: 2023-09-27 18:01:52

我的应用程序中有一个图书列表,我试图添加验证,以便不将重复的图书添加到列表中。验证应该检查书的名称是否已经出现在列表中,无论大小写如何,即小写的"book1"和大写的"book1"应该被视为相同。

到目前为止,我写了以下代码:
public string Error
{
    get
    {
        if (Books.Count() != Books.Select(x => new { x.Name.ToUpper(), x.CategoryID }).Distinct().Count())
        {
            return "Every Book and Category should be unique";
        }
        return string.Empty;
    }
}

,但是会出现以下错误:

匿名类型投影初始化式应该是简单的名称或成员访问表达式。

我该如何检查箱子呢?

查找列表中的重复项

问题在这段代码中:

new { x.Name.ToUpper(),

c#不知道该表达式的属性名是什么,所以你需要明确它的名称:

new { Name = x.Name.ToUpper(),

您可以尝试使用Dictionary,因为它们不允许重复,使用书名作为键