title: C# Library Management console program
body: <p>In this code when I add 2 books and try to delete 1st and 2nd book, 1st gets deleted and 2nd one didn't. In next case when I add 3 books and delete one by one 1 gets deleted and 2 not and 3rd one becomes missing when I delete 2. When I add 4 books 2 and 4 not deleted.</p>
  
  <p>My code (I'm a trainee so I'm a beginner in C#)</p>
  
  <pre><code>using System;
  using System.Collections.Generic;
  
  namespace LibraryManagement
  {
      //Defining a class Book
      class Book
      {
          public int bookId;
          public string bookName;
          public int bookPrice;
          public int bookCount;
          public int x;
      }
      //Defining a class Borrow
      class BorrowDetails
      {
          public int userId;
          public string userName;
          public string userAddress;
          public int borrowBookId;
          public DateTime borrowDate;
          public int borrowCount;
      }
  
      class Program
      {
          static List&lt;Book&gt; bookList = new List&lt;Book&gt;();
          static List&lt;BorrowDetails&gt; borrowList = new List&lt;BorrowDetails&gt;();
          static Book book = new Book();
          static BorrowDetails borrow = new BorrowDetails();
  
          //Password verfication and Menu 
          static void Main(string[] args)
          {
              Console.Write("Welcome !!!\nEnter your password :");
              string password = Console.ReadLine();
  
              if (password == "sync")
              {
                  bool close = true;
                  while (close)
                  {
                      Console.WriteLine("\nMenu\n" +
                      "1)Add book\n" +
                      "2)Delete book\n" +
                      "3)Search book\n" +
                      "4)Borrow book\n" +
                      "5)Return book\n" +
                      "6)Close\n\n");
                      Console.Write("Choose your option from menu :");
  
                      int option = int.Parse(Console.ReadLine());
  
                      if (option == 1)
                      {
                          GetBook();
                      }
                      else if (option == 2)
                      {
                          RemoveBook();
                      }
                      else if (option == 3)
                      {
                          SearchBook();
                      }
                      else if (option == 4)
                      {
                          Borrow();
                      }
                      else if (option == 5)
                      {
                          ReturnBook();
                      }
                      else if (option == 6)
                      {
                          Console.WriteLine("Thank you");
                          close = false;
                          break;
                      }
                      else
                      {
                          Console.WriteLine("Invalid option\nRetry !!!");
                      }
                  }
              }
              else
              {
                  Console.WriteLine("Invalid password");
              }
              Console.ReadLine();
          }
  
          //To add book details to the Library database
          public static void GetBook()
          {
              Book book = new Book();
              Console.WriteLine("Book Id:{0}", book.bookId = bookList.Count + 1);
              Console.Write("Book Name:");
              book.bookName = Console.ReadLine();
              Console.Write("Book Price:");
              book.bookPrice = int.Parse(Console.ReadLine());
              Console.Write("Number of Books:");
              book.x = book.bookCount = int.Parse(Console.ReadLine());
              bookList.Add(book);
          }
  
          //To delete book details from the Library database 
          public static void RemoveBook()
          {
              Book book = new Book();
              Console.Write("Enter Book id to be deleted : ");
  
              int Del = int.Parse(Console.ReadLine());
  
              if (bookList.Exists(x =&gt; x.bookId == Del))
              {
                  bookList.RemoveAt(Del - 1);
                  Console.WriteLine("Book id - {0} has been deleted", Del);
              }
              else
              {
                  Console.WriteLine("Invalid Book id");
              }
  
              bookList.Add(book);
          }
  
          //To search book details from the Library database using Book id 
          public static void SearchBook()
          {
              Book book = new Book();
              Console.Write("Search by BOOK id :");
              int find = int.Parse(Console.ReadLine());
  
              if (bookList.Exists(x =&gt; x.bookId == find))
              {
                  foreach (Book searchId in bookList)
                  {
                      if (searchId.bookId == find)
                      {
                          Console.WriteLine("Book id :{0}\n" +
                          "Book name :{1}\n" +
                          "Book price :{2}\n" +
                          "Book Count :{3}", searchId.bookId, searchId.bookName, searchId.bookPrice, searchId.bookCount);
                      }
                  }
              }
              else
              {
                  Console.WriteLine("Book id {0} not found", find);
              }
          }
  
          //To borrow book details from the Library
          public static void Borrow()
          {
              Book book = new Book();
              BorrowDetails borrow = new BorrowDetails();
              Console.WriteLine("User id : {0}", (borrow.userId = borrowList.Count + 1));
              Console.Write("Name :");
  
              borrow.userName = Console.ReadLine();
  
              Console.Write("Book id :");
              borrow.borrowBookId = int.Parse(Console.ReadLine());
              Console.Write("Number of Books : ");
              borrow.borrowCount= int.Parse(Console.ReadLine());
              Console.Write("Address :");
              borrow.userAddress = Console.ReadLine();
              borrow.borrowDate = DateTime.Now;
              Console.WriteLine("Date - {0} and Time - {1}", borrow.borrowDate.ToShortDateString(), borrow.borrowDate.ToShortTimeString());
  
              if (bookList.Exists(x =&gt; x.bookId == borrow.borrowBookId))
              {
                  foreach (Book searchId in bookList)
                  {
                      if (searchId.bookCount &gt;= searchId.bookCount - borrow.borrowCount &amp;&amp; searchId.bookCount - borrow.borrowCount &gt;= 0)
                      {
                          if (searchId.bookId == borrow.borrowBookId)
                          {
                              searchId.bookCount = searchId.bookCount - borrow.borrowCount;
                              break;
                          }
                      }
                      else
                      {
                          Console.WriteLine("Only {0} books are found", searchId.bookCount);
                          break;
                      }
                  }
              }
              else
              {
                  Console.WriteLine("Book id {0} not found", borrow.borrowBookId);
              }
              borrowList.Add(borrow);
          }
  
          //To return borrowed book to the library 
          public static void ReturnBook()
          {
              Book book = new Book();
              Console.WriteLine("Enter following details :");
  
              Console.Write("Book id : ");
              int returnId = int.Parse(Console.ReadLine());
  
              Console.Write("Number of Books:");
              int returnCount = int.Parse(Console.ReadLine());
  
              if (bookList.Exists(y =&gt; y.bookId == returnId))
              {
                  foreach (Book addReturnBookCount in bookList)
                  {
                      if (addReturnBookCount.x &gt;= returnCount + addReturnBookCount.bookCount)
                      {
                          if (addReturnBookCount.bookId == returnId)
                          {
                              addReturnBookCount.bookCount = addReturnBookCount.bookCount + returnCount;
                              break;
                          }
                      }
                      else
                      {
                          Console.WriteLine("Count exists the actual count");
                          break;
                      }
                  }
              }
              else
              {
                  Console.WriteLine("Book id {0} not found", returnId);
              }
          }
      }
  }
  </code></pre>