2011-11-11 13 views
2

複数の列を持つデータセットがあります。リスト内の列を除くすべての列を削除するだけです。 LINQを使用したC#データセットの列の削除

だから、例えば、データセットは、列 "コーラ"、 "COLB"、および "COLC" を持っています。私のリストには1つの項目、「ColB」という文字列が含まれています。私がしたいことは、 "ColA"と "ColC"を削除するか、 "ColB"だけを残すように言うことです。

それはLINQでこれをやってのける、あるいは一般的にすることは可能ですか?私は動的に生成された文字列のリストが元のデータセットの列をどのように消滅させるのかよく分かりません。実行速度が過度に重要でない場合は、「クラシック」投影を実行

答えて

1
var columnsFromTable = dt.Columns;// get all your column here 
var columnsFromCollection = new string[] { "ColB" };//column to remove 

Array.ForEach(columnsFromCollection,col=> 
dt.Columns.Remove(col)); 
+0

私はColBを保持し、他のすべての列を削除するつもりです。私はColBを削除するつもりはない。 – JesseBuesking

0

は、しかし(上記のコードは、ColBと呼ばれる単一のプロパティを持つ匿名クラスを作成)

var res = myList.Select(d => new {d.ColB}); 

をコンパイラのサポートを必要とします

:あなたに、このように、コンパイラが生成されたクラスの代わりに ExpandoObjectを使用することが可能です0
関連する問題