c# - 将数据表拆分为多个数据表

标签 c# linq

这些是我的数据表dtAllData的内容。

 column_1  column_2  column_3    
 --------  --------  --------  
 sec_1       Test1        2
 sec_1       Result1      5
 sec_1       Unit1        2 
 sec_2       Test2        2           
 sec_2       Result2      2
 sec_2       Unit2        5
 sec_3       Test3        2 
 sec_3       Result3      2     
 sec_3       Unit3        2     

我需要根据column_1列中的内容将其拆分为多个数据表。

因此,在这种情况下,我应该得到 3 个表(一个表的所有行均包含 sec_1,另一个表包含 sec_2,另一个表包含 sec_3 >).

我尝试过这个:

var dtArray = dtAllData.AsEnumerable() 
                            .GroupBy(row => new
                            {
                                column_1 = (string)row["column_1"]
                            });
DataTable[] array = new DataTable[dtArray.Count()];

如何从dtArray获取array中的表?

最佳答案

使用CopyToDataTable()方法将数据获取到新的DataTable中。

var Result =  from x in dtAllData.AsEnumerable()
              where x.Field<string>("column_1") == "sec_1"
              select x;
DataTable t1 = Result.CopyToDataTable();

另一种方法是使用LoadDataRow()方法。 Here is an example

关于c# - 将数据表拆分为多个数据表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15113227/

相关文章:

c# - WPF 重置按钮单击的焦点

c# - Garbage Collector、call & callvirt 和 Debug/Release 代码模式执行差异

c# - 通过键入更改 C# ComboBox 值时调用什么事件处理程序

c# - 如何将 DBNull 检查到 linq 或 int32 中?

c# - 如何在我的应用程序中加密用户设置(例如密码)?

c# - 在C#中将条件语句放在静态类中

c# - 使用 LINQ 确定 2 个图的相对位置

c# - 使用 linq 表达式将 IsEnabled 绑定(bind)到 linq 属性

c# - 使用 Linq 从不包括特定成员列表的集合中选择项目的优化方法

c# - EntityFunctions.TruncateTime 和 DbFunctions.TruncateTime 方法有什么区别?