Я пытаюсь понять различия между этими тремя коллекциями.Моя концепция заключается в заполнении таблицы данных с использованием источника данных.Во всех моих методах, которые я опишу, я получаю один и тот же результат без каких-либо различий.
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;
}
Есть ли лучший способ?Есть ли у них различия в производительности?Какие из них являются хорошей практикой для использования?