2016-05-27 8 views
0

行を表示/非表示にする動的テーブルがあります。(スキップこの変数に最後のX行をスキップするLinqステートメント

Iは最初の行をスキップし、私が最後N行をスキップしたい...

var allVisibleRows1 = myTbl.Rows.Cast<TableRow>().Where(row => row.Visible).Skip(1); 

(6スキップ)(1スキップ) 7)

どのようにするには?

答えて

6

Take拡張方法を使用して、必要な数を指定できます。

var allVisibleRows1 =myTbl.Rows.Cast<TableRow>() 
           .Where(row => row.Visible) 
           .Skip(1) 
           .Take(4); // specify count. Apply Math(if requied). 
+0

あなたが行1,5と7をスキップし、例えば2,3,4,6,8を得る必要がある場合は、さらに質問してください。これは可能でしょうか? – Aimnox

+3

可能ですが、オーバーロードされた 'select'を使用してインデックスを供給し、必要なインデックスに基づいてインデックスをフィルタリングすることをお勧めします。 –

+0

Okey、それは私の実際の知識の外に見えますが、それがわかりやすいことを知って良いです。 – Aimnox

3

あなたはこの試みることができる:

var allVisibleRows1 = myTbl.Rows.Cast<TableRow>().Where(row => row.Visible); 
LastNRowsSkipped = allVisibleRows1.Take(allVisibleRows1.Count() - N); 

をこれで唯一の注意点は、私たちは二回のコレクションの上に列挙されている - かつてのカウントのために、一度フィルタリングのために。

+2

複数の列挙を避けるには、次のようにします。var allVisibleRows1 = myTbl.Rows.Cast ().Where(row => row.Visible).ToList(); –

+0

はい、それは2回列挙するよりも優れています。 – Piyg

関連する問題