在继续之前使用LINQ / Lambda验证数据

时间:2014-02-20 13:55:46

标签: c# linq validation lambda observablecollection

我有一个WPF MVVM项目。我将一些数据输入到视图中,它必须填充网格视图。

现在当我输入数据时,我想检查是否还没有输入某个值。 基本上,如果学生Mike已在列表中显示他的名字,则会出现错误并要求您更改名称。

到目前为止,我有一个observablecollection,每次点击按钮都会填充。

studentList.Add(new Students()
{
    Name=Name,
    Age=Age,
    Class=Class
});

OnPropertyChanged(null);

其中Name,Age和Class是表/列表中的字段以及用于Textblock的相同名称。 OnPropertyChanged是我用来刷新gridview的方法。 现在我如何检查是否已输入相同的名称?

我试过了:

var duplicates = studentList.Where(x => x.Name== Name);
     if (!duplicates.Equals(Name))
     {
          //add data to gridview
     }
     else
        //showerror

但它对我不起作用。 我哪里出错了,我该如何解决?

3 个答案:

答案 0 :(得分:1)

使用Any方法

if(!studentList.Any(x => x.Name == Name)
{
    //add data to gridview
}

答案 1 :(得分:1)

if(studentList.GroupBy(x=>x.Name).Where(x=>x.Count()>2)
{
    // show error
}
else
{
    // add data to gridview
}

答案 2 :(得分:1)

任何方法在这里都很有用

if(!studentList.Any(x => x.Name == Name)
{
    //add data to gridview
}
else
{
// some error
}
相关问题