Как проанализировать массив на заданное значение c и выполнить задачу - PullRequest
0 голосов
/ 05 августа 2020

Я создал свой собственный класс для книги, и мне нужно проанализировать массив на предмет того, содержит ли он истину или ложь, а затем добавить 5 ко всему, что содержит истину. Это класс

 class Book
    {
        public double Price { get; set; }
        public string BookName { get; set; }
        public bool Hardcover { get; set; }

        public Book(string bookname, bool hardcover, double price)
        {
            Price = price;
            BookName = bookname;
            Hardcover = hardcover;
        }
        public override string ToString()
        {
            if (Hardcover == true)
            {
                return BookName + Price + Hardcover;
            }
            else
            {
                return BookName + Price + Hardcover;
            }

        }

Это то, что у меня есть до сих пор, он использует linq

        {
            InitializeComponent();
        }
        List<Book> MyBooks = new List<Book>(); 
        private void Form1_Load(object sender, EventArgs e)
        {
            MyBooks.Add(new Book("Book 1", false, 5.50));
            MyBooks.Add(new Book("Book 2", false, 5.50));
            MyBooks.Add(new Book("Book 3", false, 5.50));
            MyBooks.Add(new Book("Book 4", false, 5.50));
            MyBooks.Add(new Book("Book 5", true, 5.50));
        }
        private void Grid_Click(object sender, EventArgs e)
        {
            Button c = (Button)sender;

            List<Book> MyBooks = new List<Book>();

            IEnumerable<String> bookQuery =
                from book in MyBooks
                where book is true
                select book;

            foreach (String p in MyBooks)
            {
                textBox1.Text = textBox1.Text + p.ToString() + Environment.NewLine;
            }
        }

thx для помощи

1 Ответ

2 голосов
/ 05 августа 2020

предположение, что вы имеете в виду, приводит к следующему:

foreach(Book book in MyBooks)
{
    if (book.Hardcover)
       book.Price += 5;
}

альтернатива

MyBooks.Where(b => b.Hardcover).ForEach(b => b.Price += 5);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...