pen*_*ake 0 .net c# code-duplication jagged-arrays
我有一个基于锯齿状数组的循环,我需要在不同的地方使用多次.
如何防止自己一次又一次地重写这个循环,以便我将它复制?
foreach (int[] columns in rowsAndColumns)
{
foreach (int element in columns)
{
}
}
Run Code Online (Sandbox Code Playgroud)
你可以写
foreach (int element in rowsAndColumns.SelectMany(col => col))
{
// ...
}
Run Code Online (Sandbox Code Playgroud)
代替.如果您不想一直输入,可以将其抽象为辅助方法:
foreach (int element in rowsAndColumns.Flatten())
{
// ...
}
// [...]
public IEnumerable<T> Flatten(this IEnumerable<IEnumerable<T>> source)
{
return source.SelectMany(e => e);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
123 次 |
| 最近记录: |