C# 效能最佳化細節
1、使用ItemArray實現對DataRow的批次賦值
。這時應盡量使用批次字段賦值。可以使用ItemArray或rows.Add方法:
/ ds是数据集(DataSet)对象 DataTable dt = ds.Tables[0]; DataRow row = dt.NewRow(); row.ItemArray = new object[] { value1, value2, …, valuen }; // ds是数据集(DataSet)对象 DataTable dt = ds.Tables[0]; dt.Rows.Add(value1, value2, …, valuen); //应避免做大量连续的单列赋值,如下: DataTable dt = ds.Tables[0]; DataRow row = dt.NewRow(); row["col1"] = value1; row["col2"] = value2; … row["coln"] = valuen;
IEnumerable<DataRow> FindRows() //查找所有数量小于0的分录
{
DataTable dt = ItemDataTable;
……
return dt.Select(“Quantity<0”); //未使用并行计算
}
IEnumerable<DataRow> FindRows() //查找所有数量小于0的分录
{
DataTable dt = ItemDataTable;
……
int index = dt.Columns.IndexOf("Quantity");
return dt.AsEnumerable().AsParallel().Where(dr => (decimal)dr[index] < 0); //使用并行计算:
}
根據實驗,當對DataTable的行選擇時並行計算優於Select和循環過濾等方式;當進行行遍歷時類似。
Mer範例如下:
DataTable[] srcTables = ... ; foreach(DataTable src in srcTables ) { dest.Merge( src ) ; }
ImportRow也可以實現DataTable的合併操作,效能相比Merge高很多。程式碼範例如下:
DataTable[] srcTables = ... ; foreach(DataTable src in srcTables ) { foreach(DataRow row in src.Rows) { dest.ImportRow( row ) ; } }
4、待續🎜🎜🎜🎜🎜🎜🎜以上是C# DataSetSet🎜🎜🎜🎜🎜以上是C# DataSetSet🎜、更多效能內容cn)! 🎜🎜