如何检查C#中列表中是否已存在某个项目

Ama*_*nes 0 c#

我想仅在列表中尚未添加classStudents到列表中._ClassStudentsclassStudents

public class ClassStudents{

   public Id {get; set;}
   public Name {get; set;}
   public List<Student> Student {get; set;}

}



public static List<ClassStudents> _ClassStudentsList = new List<ClassStudents>();

  public static void addClassStudents(ClassStudents classStudents)
  {
          //if( classStudents isn't in ClassStudentsList ) <------
           _ClassStudentsList.Add(classStudents);
   }
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?

Zoh*_*led 6

您可以使用Any扩展方法:

var text = nameClassStudents.Text;
if(!_ClassStudentsList.Any(t => t.Text == text))
{
    _ClassStudentsList.Add(new ClassStudents(text,(int)numericUpDown1.Value));
}
Run Code Online (Sandbox Code Playgroud)

但是,这并不能保证名称在列表中是唯一的.如果你想保证它,你可以简单地使用a Dictionary<string, int>而不是a List<ClassStudents>.
字典不允许重复键.
当然,在这里你还需要在向字典添加值之前检查密钥是否存在:

var dict = new Dictionary<string, int>;
...

var text = nameClassStudents.Text;
if(!dict.ContainsKey(text))
(
    dict.Add(text, (int)numericUpDown1.Value);
)
Run Code Online (Sandbox Code Playgroud)