c# - 在列表中查找重复项

标签 c# linq

我的应用程序中有书籍列表,我正在尝试添加验证,以便不会将重复的书籍添加到列表中。验证应检查书名是否已出现在列表中,无论大小写如何,即小写“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;
    }
}

但它出现了以下错误:

Anonymous Type Projection Initializer Should be simple name or member access expression.

我应该如何检查案件?

最佳答案

问题出在这段代码中:

new { x.Name.ToUpper(),

C# 不知道该表达式的属性名称是什么,因此您需要明确说明应该调用什么:

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

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

相关文章:

c# - 我可以用 LINQ 做到这一点吗?

c# - 如何检查文件是否在 C# 中使用?

c# - 在 Entity Framework C# 中返回列表的最大列表

c# - Entity Framework 6 延迟加载怪癖

c# - 如何让linq将数据从一种形式转换为另一种形式

c# - SQL 2005 最佳 "Paging"

c# - Dynamics 365 CRM SDK 或 Rest API

c# - Ninject 中的泛型和属性绑定(bind)

c# - 使用 Linq 从 3 个集合创建项目

c# - SortedList of Lists 中最长的列表