Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/331.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在C中从另一个包含多列的数据表中获取一个包含两列的数据表#_C#_Select_Datatable - Fatal编程技术网

C# 如何在C中从另一个包含多列的数据表中获取一个包含两列的数据表#

C# 如何在C中从另一个包含多列的数据表中获取一个包含两列的数据表#,c#,select,datatable,C#,Select,Datatable,我有一个包含15列和多行的数据表,我需要创建一个新的数据表,该数据表只包含15列中的三列,并将所有相应的数据从原始数据表复制到第二个数据表 我已经寻找了答案,找到的最接近的URL是以下URL。但我使用SO解决方案的问题是,我需要删除12列才能获得我想要的3列,因为SO解决方案是删除列 有没有更简单的方法?任何暗示都将不胜感激。我不知道LINQ(也许这是一个LINQ问题,我不知道),我是一个中级C#程序员。谢谢你的帮助 后来编辑:非常感谢@Tim Schmelter的回答,在我发布了这个问题后,

我有一个包含15列和多行的数据表,我需要创建一个新的数据表,该数据表只包含15列中的三列,并将所有相应的数据从原始数据表复制到第二个数据表

我已经寻找了答案,找到的最接近的URL是以下URL。但我使用SO解决方案的问题是,我需要删除12列才能获得我想要的3列,因为SO解决方案是删除列

有没有更简单的方法?任何暗示都将不胜感激。我不知道LINQ(也许这是一个LINQ问题,我不知道),我是一个中级C#程序员。谢谢你的帮助


后来编辑:非常感谢@Tim Schmelter的回答,在我发布了这个问题后,我发现在一天结束时,我需要做的是将最终的数据表(有三列)复制到dataGridView(已经有三列)中。所以我的问题是如何将一个有15列的dataTable复制到一个有3列的DataGridView。我通过查看Nomi Ali在我帖子第二个SO链接中的评论找到了答案。我只是在DataGridView上将AutoGenerateColumn设置为False。这解决了我的问题。不过,我会尝试@Tim Schmelter的答案,如果可行,我会将其标记为答案

也许您可以定义一个白名单并使用LINQ:

string[] wantedColumns = { "Column1", "Column2", "Column3" }; // for example
DataTable secondTable = firstTable.Copy();
var removeColumns = secondTable.Columns.Cast<DataColumn>()
    .Where(col => !wantedColumns.Contains(col.ColumnName, StringComparer.InvariantCultureIgnoreCase))
    .ToList();
removeColumns.ForEach(c => secondTable.Columns.Remove(c));
string[]wantedColumns={“Column1”、“Column2”、“Column3”};//例如
DataTable secondTable=firstTable.Copy();
var removeColumns=secondTable.Columns.Cast()
.Where(col=>!wantedColumns.Contains(col.ColumnName,StringComparer.InvariantCultureIgnoreCase))
.ToList();
removeColumns.ForEach(c=>secondTable.Columns.Remove(c));

我必须删除12列。我甚至不知道所有15列的名称。@user1298925,如果您不知道要删除哪些列,您将如何删除它们?。你知道列索引吗?谢谢你的回答