2014-03-27 88 views
0

如何在連續跳過第一個字段的同時在一行中查找每個'3個字段組合中的第一個字段''行。連續查找'3個字段組合'中的每個'第一個字段'並跳過第一個字段

假設我們有一排這樣的:

「零」,「一」, 「二」, 「三」, 「一」, 「二」, 「三」, 「一」 ,「二」, 「三公」

我想打一個循環,那麼只有做一些事情,如果值是「一」在這種情況下,但是值彼此當然不同。

請注意,我必須跳過「零」

我需要它在C#中,但其他語言或僞代碼以及OK

請讓我注意,我可以用2做循環,但我不認爲這是最有效的方式。

+0

什麼是_row_? –

+0

在這種情況下,帶有單元格的數據行,但列表或數組中的對象也很好,我只需要僞代碼來做到這一點 –

+0

你能提供更多的例子嗎? –

回答

1

所以這是一個DataTable,你想跳過第一列,並採取一切第三列:

List<DataColumn> myColumns = table.Columns.Cast<DataColumn>() 
    .Skip(1) 
    .Select((col, index) => new { col, index}) 
    .GroupBy(x => x.index/3) 
    .Select(xg => xg.Select(x => x.col).First()) 
    .ToList(); 

這將使用整數除法「絕招」來獲得一組三行。然後我把每一組的第一行。

foreach (DataRow row in table.Rows) 
     Console.WriteLine("Every third field after the second: " 
      + string.Join(",", myColumns.Select(c => row[c]))); 
+0

工程很好,非常感謝! –

0

使用模運算符。

Pesudocode:

for (int i = 1; i < row.length; i++) 
{ 
    if (i+2 % 3 == 0) doSomething(); 
} 
相關問題