_Core/Helpers/EnumerableHelper.cs
(完整代码) 1KB/*
* Author: Kishore Reddy
* Url: http://commonlibrarynet.codeplex.com/
* Title: CommonLibrary.NET
* Copyright: � 2009 Kishore Reddy
* License: LGPL License
* LicenseUrl: http://commonlibrarynet.codeplex.com/license
* Description: A C# based .NET 3.5 Open-Source collection of reusable components.
* Usage: Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ComLib
{
/// <summary>
/// This class contains methods to help with enumrating items.
/// </summary>
public class EnumerableHelper
{
/// <summary>
/// Calls the action by supplying the start and end index.
/// </summary>
/// <param name="itemCount">Number of items.</param>
/// <param name="cols">Number of columns.</param>
/// <param name="action">Action to call for each item.</param>
public static void ForEachByCols(int itemCount, int cols, Action<int, int> action)
{
if (itemCount == 0)
return;
if (itemCount <= cols)
{
action(0, itemCount - 1);
return;
}
int startNdx = 0;
while (startNdx < itemCount)
{
// 1. startNdx = 0 .. endNdx = 2
// 2. startNdx = 3 .. endNdx = 5
int endNdx = startNdx + (cols - 1);
if (endNdx >= itemCount)
endNdx = itemCount - 1;
action(startNdx, endNdx);
startNdx = endNdx + 1;
}
}
}
}
24 小时内免费解锁 3 个项目,之后 1 积分/个。 规则说明
AI 解读
登录后可用,每次 10 积分,解读结果公开显示在下面。
还没有人解读过这个文件。
