连续查找每个“3个字段组合中的第一个字段”并跳过第一个字段

时间:2014-03-27 11:57:15

标签: c# find pseudocode

如何在跳过行的第一个字段时连续找到连续3个字段中的每个'第一个字段

假设我们有这样一行:

  

“Zero”,“One”,“Two”,“Three”,“One”,“Two”,“Three”,“One”,“Two”,   “三”

我想制作一个循环,然后在这种情况下,当值“一个”时只做一些事情,但是当然这些值彼此不同。

请注意,我必须跳过“归零”

我需要在C#中使用它,但其他语言或伪代码也可以

请让我注意我可以用2个循环来做,但我认为这不是最有效的方法。

2 个答案:

答案 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])));

答案 1 :(得分:0)

使用模运算符。

Pesudocode:

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