LINQ는 읽기 작업을위한 쿼리 언어입니다. LINQ 쿼리에서 삽입 작업을 수행 할 수 없습니다.
var rows1 = from row in rows where row["ItemType"] == 1 select row;
var rows2 = from row in rows where row["ItemType"] == 2 select row;
var rows3 = from row in rows where row["ItemType"] == 3 select row;
foreach (var row in rows1) { /* Insert item into DataTable1 */ }
foreach (var row in rows2) { /* Insert item into DataTable2 */ }
foreach (var row in rows3) { /* Insert item into DataTable3 */ }
업데이트 :
또는 단일 LINQ 문에 그것을 할 수있을 때, 당신은이 작업을 수행 할 수 있습니다 : 당신이 할 수있는 세 가지 LINQ 쿼리를 작성하고 개별적으로 반복이다
var rows =
from row in rows
select new { Row = row, Item = row["ItemType"] };
foreach (var row in rows)
{
switch (row.Item)
{
case 1:
// Insert item into DataTable1
break;
case 2:
// Insert item into DataTable2
break;
case 3:
// Insert item into DataTable3
break;
}
}
업데이트 : 또 다른 옵션 : 그래서
var rows =
from row in rows
select new
{
Row = row,
Table = row["ItemType"] == 1 ? table1 :
(row["ItemType"] == 2 ? table2 : table3)
};
foreach (var row in rows)
{
var table = row.Table;
var row = row.Row;
table.Rows.Add(row);
}
는, 우리는 C를 의미 하는가 annot은 어떤 식 으로든 단일 Linq 선언문에서 전체 프로세스를 수행합니까? –
@Shantanu : 예, 단일 LINQ 문을 작성할 수 있습니다. 내 업데이트를 참조하십시오. – Steven
이것은 내가 기대했던 것이 아닙니다. 이것은 linq을 사용하지 않고도 완료되었을 수 있습니다. –