BindingList против DataTable против коллекции списков - PullRequest
0 голосов
/ 16 июня 2019

Я пытаюсь понять различия между этими тремя коллекциями.Моя концепция заключается в заполнении таблицы данных с использованием источника данных.Во всех моих методах, которые я опишу, я получаю один и тот же результат без каких-либо различий.

private void button1_Click(object sender, EventArgs e)
    {
        dataGridView1.DataSource = dt();
        dataGridView2.DataSource = dt2();
        dataGridView3.DataSource = dt3();
    }

    public class Foo
    {
        public Foo(string name,int age)
        {
            Name = name;
            Age = age;
        }
        [DisplayName("CustomerName")]
        public string Name { get; set; }
        [DisplayName("CustomerAge")]
        public int Age { get; set; }
    }

    //Method 1
    private BindingList<Foo> dt()
    {
        BindingList<Foo> tmp = new BindingList<Foo>();
        tmp.Add(new Foo (  "Dimitris", 28 ));
        tmp.Add(new Foo (  "Dio",  32 ));
        return tmp;
    }

    //Method 2
    private DataTable dt2()
    {
        DataTable tmp = new DataTable();
        tmp.Columns.Add("Name", typeof(string)).Caption = "CustomerName";
        tmp.Columns.Add("Age", typeof(int)).Caption = "CustomerAge";
        DataRow dr = null;

        dr = tmp.NewRow();
        dr["Name"] = "Dimitris";
        dr["Age"] = 28;
        tmp.Rows.Add(dr);

        dr = tmp.NewRow();
        dr["Name"] = "Dio";
        dr["Age"] = 32;
        tmp.Rows.Add(dr);

        return tmp;
    }

    //Method 3
    private List<Foo> dt3()
    {
        List<Foo> tmp = new List<Foo>();
        tmp.Add(new Foo("Dimitris", 28));
        tmp.Add(new Foo("Dio", 32));
        return tmp;
    }

Есть ли лучший способ?Есть ли у них различия в производительности?Какие из них являются хорошей практикой для использования?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...