在列表中查找重复项

时间:2014-05-06 14:52:39

标签: 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;
    }
}

但它出现以下错误:

  

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

我该如何检查案件呢?

2 个答案:

答案 0 :(得分:7)

问题在于此代码段:

new { x.Name.ToUpper(),

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

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

答案 1 :(得分:0)

您可以尝试使用词典,因为他们不会允许重复,使用书名作为键。