C# 在任务之间划分循环
我想在任务之间划分for循环 应该描述我的想法的示例代码:C# 在任务之间划分循环,c#,loops,for-loop,task,C#,Loops,For Loop,Task,我想在任务之间划分for循环 应该描述我的想法的示例代码: for(int i=0;i
for(int i=0;i
例如,如果数组计数为20,并且我将chunk count设置为4,那么它将为我们提供块大小5。
第一个任务将处理0到4之间的i,第二个任务将处理5到9、10到14、15到19之间的i。
乐观的情况是,若这个数字是奇数,你们需要额外的任务来处理一些元素
我不能解决两个问题:
在有人说我应该先尝试自己之前:如果我知道该怎么做,我会尝试。我问是因为我不知道。这就是论坛的目的。疯狂的想法,我知道。OP的文本有点混乱/模糊。所以,我将采取这一部分的行动,并试图回答它在两个不同的方式 例如,如果数组计数为20,并且我将chunk count设置为4,那么它将为我们提供块大小5。第一个任务将处理0到4之间的i,第二个任务将处理5到9、10到14、15到19之间的i 注意,我将使用扩展方法
Batch
如果我们想为每个“块”调用单个方法
void PerformActionsOnAllItems(IEnumerable<string> items)
{
int chunkSize = 5;
foreach(IEnumerable<string> chunk in items.Batch(chunkSize))
{
PerformAction(chunk);
}
}
void PerformAction(IEnumerable<string> chunkItems)
{
Console.WriteLine("---- CHUNK -----");
foreach(string item in chunkItems)
{
Console.WriteLine("Item: " + item);
}
}
void PerformActionsOnAllItems(IEnumerable<string> items)
{
int chunkSize = 5;
int chunkNumber = 0;
foreach(IEnumerable<string> chunk in items.Batch(chunkSize))
{
if((chunkNumber % 2) == 0)
{
PerformEvenAction(chunk);
}
else
{
PerformOddAction(chunk);
}
++chunkNumber;
}
}
void PerformEvenAction(IEnumerable<string> chunkItems)
{
Console.WriteLine("---- EVEN CHUNK -----");
foreach(string item in chunkItems)
{
Console.WriteLine("Even Item: " + item);
}
}
void PerformOddAction(IEnumerable<string> chunkItems)
{
Console.WriteLine("---- ODD CHUNK -----");
foreach(string item in chunkItems)
{
Console.WriteLine("Odd Item: " + item);
}
}
void performationsonallitems(IEnumerable items)
{
int chunkSize=5;
foreach(items.Batch(chunkSize))中的IEnumerable块
{
表演(语块);
}
}
无效性能(IEnumerable chunkItems)
{
Console.WriteLine(--CHUNK-----);
foreach(chunkItems中的字符串项)
{
Console.WriteLine(“项:+项”);
}
}
如果我们想在每个“块”使用哪种方法之间进行切换
void PerformActionsOnAllItems(IEnumerable<string> items)
{
int chunkSize = 5;
foreach(IEnumerable<string> chunk in items.Batch(chunkSize))
{
PerformAction(chunk);
}
}
void PerformAction(IEnumerable<string> chunkItems)
{
Console.WriteLine("---- CHUNK -----");
foreach(string item in chunkItems)
{
Console.WriteLine("Item: " + item);
}
}
void PerformActionsOnAllItems(IEnumerable<string> items)
{
int chunkSize = 5;
int chunkNumber = 0;
foreach(IEnumerable<string> chunk in items.Batch(chunkSize))
{
if((chunkNumber % 2) == 0)
{
PerformEvenAction(chunk);
}
else
{
PerformOddAction(chunk);
}
++chunkNumber;
}
}
void PerformEvenAction(IEnumerable<string> chunkItems)
{
Console.WriteLine("---- EVEN CHUNK -----");
foreach(string item in chunkItems)
{
Console.WriteLine("Even Item: " + item);
}
}
void PerformOddAction(IEnumerable<string> chunkItems)
{
Console.WriteLine("---- ODD CHUNK -----");
foreach(string item in chunkItems)
{
Console.WriteLine("Odd Item: " + item);
}
}
void performationsonallitems(IEnumerable items)
{
int chunkSize=5;
int chunkNumber=0;
foreach(items.Batch(chunkSize))中的IEnumerable块
{
如果((chunkNumber%2)==0)
{
执行事件(区块);
}
其他的
{
表演(语块);
}
++组块数;
}
}
作废PerformEventAction(IEnumerable chunkItems)
{
Console.WriteLine(“----偶数块------”);
foreach(chunkItems中的字符串项)
{
Console.WriteLine(“偶数项:+项”);
}
}
void performodAction(IEnumerable chunkItems)
{
Console.WriteLine(“----奇数块------”);
foreach(chunkItems中的字符串项)
{
Console.WriteLine(“奇数项:+项”);
}
}
感谢您抽出时间分享您的问题。你要什么还不清楚。你的目标和困难是什么?到目前为止你做了什么?请尝试更好地解释您的问题、开发环境、数据类型和预期结果,以及或多或少地共享代码(无屏幕截图)、屏幕图像或草图、用户故事或场景图。为了帮助您改进您的请求,请阅读&。我根本不明白您在说什么。你能澄清这个问题并补充更多细节吗?提到的任务是什么?你说的除法是什么意思?什么是块计数?此外,Stack Overflow不是一个论坛:它是一个数据库,有人在其中发布关于某个问题的问题,而其他人则试图回答和解决问题,以帮助编码人员并改善世界计算工作。因此,这需要最少的具体数据输入来完成一个过程以获得结果。在某种程度上,如果没有完整和准确的数据,就不可能有任何过程,因此就不会有输出……类似这样的情况@MikeChristiansen我也有类似的想法,但并没有理由拆分数组本身,因为它是空函数。@Perro12-这可能会澄清我所说的。