for 루프를 사용하여 약 40 000 개의 레코드가 포함 된 데이터 테이블을 반복하는 데는 거의 4 분이 걸립니다. 루프 내에서는 각 행의 특정 열 값을 읽고 문자열에 concatinating하는 것입니다.C# : 거대한 데이터 테이블을 반복합니다.
DB 연결이나 다른 것을 열지 않습니다. 데이터 테이블을 수신하고 반복하며 문자열을 반환하는 함수입니다.
더 빠른 방법이 있습니까?
코드는 여기에 표시됩니다 :
private string getListOfFileNames(Datatable listWithFileNames)
{
string whereClause = "";
if (listWithFileNames.Columns.Contains("Filename"))
{
whereClause = "where filename in (";
for (int j = 0; j < listWithFileNames.Rows.Count; j++)
whereClause += " '" + listWithFileNames.Rows[j]["Filename"].ToString() + "',";
}
whereClause = whereClause.Remove(whereClause.Length - 1, 1);
whereClause += ")";
return whereClause;
}
일부 코드 게시 –
데이터 테이블에 'LINQ'를 사용해 보셨습니까? – Luis
일부 코드를 보거나이 코드에 대한 자세한 설명을 제공하는 것이 좋습니다. 예를 들어, StringBuilder 클래스를 사용하여 대부분의 시간을 차지할 수있는 문자열 만 연결할 수 있습니다. –