查找行中的每个'first field in a combination of 3 fields'并跳过第一个字段



如何在一行中找到3个字段'的组合中的每个'第一个字段,同时跳过该行的第一个字段。

假设我们有这样一行:

"零","1","2","3","1","2","3","一"、"两个","三"

我想做一个循环,然后只在值为时做一些事情,在这种情况下,"One",然而值当然彼此不同。

注意我必须跳过" 0 "

我需要c#,但其他语言或伪代码也可以

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

这是一个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])));

使用模运算符

Pesudocode:

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

相关内容