如何在一行中找到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();
}