如何在连续跳过第一个字段的同时在一行中查找每个'3个字段组合中的第一个字段''行。连续查找'3个字段组合'中的每个'第一个字段'并跳过第一个字段
假设我们有一排这样的:
“零”,“一”, “二”, “三”, “一”, “二”, “三”, “一” ,“二”, “三公”
我想打一个循环,那么只有做一些事情,如果值是“一”在这种情况下,但是值彼此当然不同。
请注意,我必须跳过“零”
我需要它在C#中,但其他语言或伪代码以及OK
请让我注意,我可以用2做循环,但我不认为这是最有效的方式。
如何在连续跳过第一个字段的同时在一行中查找每个'3个字段组合中的第一个字段''行。连续查找'3个字段组合'中的每个'第一个字段'并跳过第一个字段
假设我们有一排这样的:
“零”,“一”, “二”, “三”, “一”, “二”, “三”, “一” ,“二”, “三公”
我想打一个循环,那么只有做一些事情,如果值是“一”在这种情况下,但是值彼此当然不同。
请注意,我必须跳过“零”
我需要它在C#中,但其他语言或伪代码以及OK
请让我注意,我可以用2做循环,但我不认为这是最有效的方式。
所以这是一个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();
}
什么是_row_? –
在这种情况下,带有单元格的数据行,但列表或数组中的对象也很好,我只需要伪代码来做到这一点 –
你能提供更多的例子吗? –