And*_*ite 11 c# linq datatable list
我有大约100,000行通用数据.此数据的列/属性是用户可定义的,并且是常用的数据类型(字符串,整数,双精度,日期).将有大约50列/属性.
我有2个需求:
DataTable:
Pros: DataColumn.Expression is inbuilt
Cons: RowFilter & coding c# is not as "nice" as LINQ,
DataColumn.Expression does not support callbacks(?)
=> workaround could be to get & replace external value when creating
the calculated column
GenericList:
Pros: LINQ syntax, NCalc supports callbacks
Cons: Implementing NCalc/generic calc engine
基于以上所述,我认为GenericList方法会获胜,但我没有考虑的是性能,由于某些原因,我认为使用数据表会更好.
有没有人对LINQ vs. DataTable性能有直觉感受/经验?
NCalc怎么样?
正如我所说,大约有100,000行数据,有50列,其中可能有20列.总共将对数据运行大约50条规则,因此总共将有500万行/对象扫描.
非常感谢任何见解.谢谢.
PS.当然使用数据库+ SQL和Views等将是最简单的解决方案,但由于各种原因无法实现.
好吧,使用DataTable并不排除使用LINQ
table.Rows.Cast<DataRow>() //IEnumerable<DataRow>, linq it to death
Run Code Online (Sandbox Code Playgroud)
这个家伙提出了一些关于HashTablevs.的争论,DataTable而这个家伙发现的Dictionary好多了DataTable,但不是很多(字典中的因素创造成本).
注意:如果预先知道列(也就是说,用户可以从预定义的一组列(名称,类型)中选择一些列),我会使用强类型类,因为data["property"]不会像我data.Property那样获得Intellisense支持.