2014-01-10 3 views
1

저는 C#으로 작성된 Windows Forms 응용 프로그램에서 작업하고 있습니다.DataGridView 내용을 사용자 지정 개체의 List <>로 변환하는 방법?

컨트롤에서 List<>을 만드는 방법에 대한 제안을 찾았지만 셀 값을 추출하는 방법에 대한 도움이 필요합니다.

여기에 제공된 코드가 있습니다. dataGridView1의 두 열이 NameAddress 인 경우,
List<ProjList> 개체를 만드는 방법은 무엇입니까?

foreach (DataGridViewRow dr in dataGridView1.Rows) 
{ 
    ProjList = new List<ProjectMasterRec>(); 

    foreach (DataGridViewCell dc in dr.Cells) 
    { 
     // build out MyItem 
     // based on DataGridViewCell.OwningColumn and DataGridViewCell.Value 
     // how do we code this? 
    } 

    ProjList.Add(item); 
} 
+0

모든 행 데이터를 가져 와서 문자열 형식으로 하나의 레코드로 나열 하시겠습니까? – Abdul

답변

3

것은 그에게

List<ProjectMasterRec>() ProjList = new List<ProjectMasterRec>(); 

이 확인 클래스 유형의 목록을 작성이 방법을 시도 물론 목록의 유형은

foreach (DataGridViewRow dr in dataGridView1.Rows) 
{ 
    //Create object of your list type pl 
    ProjectMasterRec pl = new ProjectMasterRec(); 
    pl.Property1 = dr.Cells[1].Value; 
    pl.Property2 = dr.Cells[2].Value; 
    pl.Property3 = dr.Cells[3].Value; 

    //Add pl to your List 
    ProjList.Add(pl);  
} 
1

된 DataGridView에 데이터를 입력 할 속한 LINQ를 사용할 수 있다면 다음과 같이 할 수 있습니다 :

var projectList = (from row in dataGridView1.Rows.OfType<DataGridViewRow>() 
        select new ProjectMasterRec() 
        { Name = row.Cells["Name"].Value.ToString(), 
        Address = row.Cells["Address"].Value.ToString() 
        }).ToList(); 
+0

현재 컨텍스트에서 dgvTest가 존재하지 않는다는 오류가 Linq에서 발생합니다. var projectList를 List로 변환하는 방법은 무엇입니까? .ToList()를 사용하여 쿼리를 변환 할 때 왜 우리는 List에 직접 할당 할 수 없습니까? 나중에 목록을 사용할 것이기 때문에 var를 사용하고 싶지 않습니다. – user2026794

+0

@ user2026794 - 변수'dgvTest'는 일러스트레이션 용입니다. 귀하의 실제 변수'dataGridView1'을 사용하여, 나는 또한 내 대답을 업데이 트했습니다. 'var'은 암시 적 로컬 타입이며,'System.Object'와 같지 않습니다. 따라서 위의 경우'var'는'List '가됩니다. – Channs