2014-03-27 73 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(); 
} 
相关问题