C# 如何从DataGridView.Rows集合中读取值并将其分配给自定义对象列表?

C# 如何从DataGridView.Rows集合中读取值并将其分配给自定义对象列表?,c#,list,object,datagridview,custom-object,C#,List,Object,Datagridview,Custom Object,我的自定义对象有两个属性:userid和username 在这里,我找到了如何使用foreach循环遍历每个DataGridViewRow,但我不知道如何将当前单元格值指定给自定义对象值 foreach (DataGridViewRow dr in dataGridView1.Rows) { ClsOBJ userobj1 = new ClsOBJ(); foreach (DataGridViewCell dc in dr.Cells) { // u

我的自定义对象有两个属性:
userid
username

在这里,我找到了如何使用
foreach
循环遍历每个
DataGridViewRow
,但我不知道如何将当前单元格值指定给自定义对象值

foreach (DataGridViewRow dr in dataGridView1.Rows) 
{
    ClsOBJ userobj1 = new ClsOBJ();

    foreach (DataGridViewCell dc in dr.Cells) 
    {
        // userobj1.userid =
        // cell index 0 should be read to userid
        // and cell index 1 should be read to username
        // userobj1.username =
    }

    list1.Add(userobj1);
}

不需要遍历单元格集合。只需访问每个文件并根据需要进行转换:

foreach (DataGridViewRow dr in dataGridView1.Rows) 
{
    ClsOBJ userobj1 = new ClsOBJ();

    userobj1.userid = Convert.ToInt32(dr.Cells[0].Value);
    userobj1.username = Convert.ToString(dr.Cells[1]);

    list1.Add(userobj1);
}
您可以使用填充列表,但是如果您不熟悉它,
foreach
循环非常好

list1.AddRange(
    dataGridView1.Rows
                 .Cast<DataGridViewRow>()
                 .Select(x => new ClsOBJ
                                  {
                                    userid = Convert.ToInt32(x.Cells[0].Value),
                                    username = Convert.ToString(x.Cells[1].Value)
                                  }));
list1.AddRange(
dataGridView1.Rows
.Cast()
.选择(x=>newclsobj
{
userid=Convert.ToInt32(x.Cells[0].Value),
username=Convert.ToString(x.Cells[1].Value)
}));