C#将两个列表与对象

时间:2017-11-15 23:17:32

标签: c# list class object button

我正在制作一个简单的程序,而且我仍然坚持简单的问题。如何将两个列表与对象进行比较,找到该对象并打印属于该对象的所有类元素?

 List<Skaitytojas> MyObjectList = new List<Skaitytojas>();
 List<Knyga> KnyguList = new List<Knyga>();

 private void button2_Click(object sender, EventArgs e)
    {
        Reader reader = new Reader();

        reader._surname = Convert.ToString(textBox1.Text);
        reader._id = Convert.ToInt32(textBox2.Text);

        MyObjectList.Add(reader);
        MessageBox.Show("you created new user");
    }

private void button4_Click(object sender, EventArgs e)
    {
        Book new_book = new Book();

       new_book.book_id = Convert.ToInt32(textBox3.Text);
        new_book.date1 = Convert.ToString(textBox4.Text);
        new_book.date2 = Convert.ToString(textBox5.Text);
        new_book.date3 = Convert.ToString(textBox6.Text);
       new_book._id2 = Convert.ToInt32(textBox7.Text);

        BookList.Add(new_book);
        MessageBox.Show("you added new book!");
    }

我想将reader._id与new_book.id2进行比较,它将是相同的数字,如果我找到它,我想打印有关它的所有信息:book id,date1,date2等。 但我不知道该怎么做,我这样试试:

public void print_book(int x, ListBox f)
    {
        List<Book> BookList = new List<Book>();
        foreach (var k in BookList)
        {
            if (x == k._id2)
            {
                f.Items.Add(x);
            }
        }
    }

使用按钮

调用功能
private void button3_Click(object sender, EventArgs e)
    {

        int x = Convert.ToInt32(textBox2.Text);
        Metodai m = new Metodai();
        m.print_book(x, this.listBox1);
    }

当我尝试执行此功能时,列表仍然是空的,它有什么问题吗?也许有另一种方法可以做到这一点?你能救我吗?

2 个答案:

答案 0 :(得分:1)

该行

with(temps, as.Date(paste0(year, "-01-01")) + (yday - 1))
# [1] "1980-01-01" "1980-01-02" "1980-01-03" "1980-01-04" "1980-01-05"

你刚刚在行中实例化了BookList,因此它没有循环。

答案 1 :(得分:0)

您创建了一个函数变量&#39; BookList&#39;与实例变量的名称相同。

有两种方法可以解决它。

// Fix #1
public void print_book(int x, ListBox f)
{
    //List<Book> BookList = new List<Book>(); // Comment this line
    foreach (var k in BookList)
    {
        if (x == k._id2)
        {
            f.Items.Add(x);
        }
    }
}

// Fix #2
public void print_book(int x, ListBox f)
{
    List<Book> BookList = new List<Book>(); // 'BookList' has never been used
    foreach (var k in this.BookList) // Add 'this'
    {
        if (x == k._id2)
        {
            f.Items.Add(x);
        }
    }
}