C# - 如果所有比较都为真则返回真

标签 c#

每个 drone[i] 我都有一个 queue[i]

我的问题:如何制作等待每个 drone[i].actual_position == drone[i].desired_position 的代码而不是我当前的代码如果当前无人机 drone[i]desired_position == drone[i].actual_position

则等待

所以不是这个:

for (int i = 0; i < drones.Length; i++)
{
    queue[i].Enqueue(drone[i].desired_position);

    if (drone[i]desired_position == drone[i].actual_position) 
    {
        queue[i].Dequeue();
        queue[i].Enqueue(next_desired_position);
    } 
}

我想要这样的东西:

for (int i = 0; i < drones.Length; i++)
{
    queue[i].Enqueue(drone[i].desired_position);

    //TODO: what should I put into "if"?
    if (/* all drone[i]desired_position == drone[i].actual_position */) 
    {
        queue[i].Dequeue();
        queue[i].Enqueue(next_desired_position)
    } 
}

TLDR:我想确保每架无人机在出列之前都处于他想要的位置,然后转到下一个位置以便无人机同步。

最佳答案

看来您正在寻找 All Linq 命令以及 for 循环和 if 交换:

 // If all drones are at their expected positions
 if (drone.All(d => d.desired_position == d.actual_position))
   // then set new goals for each drone:
   for (int i = 0; i < drone.Length; ++i) {
     // remove the target achieved
     queue[i].Dequeue();
     // but add a new location to go
     queue[i].Enqueue(next_desired_position) 
   } 

关于C# - 如果所有比较都为真则返回真,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42245957/

相关文章:

c# - ITestActionResult.ErrorMessage 中的回车

c# - asp.net网站如何支持https(ssl)?

c# - Firestore REST 身份验证

c# - 异步创建目录(不使用 FileSystemWatcher)?

c# - 为 log4net 配置自定义事件日志

时间:2019-04-01 标签:c#outlook add-in convert msg to eml

c# - 精通一种语言或了解更多语言

c# - 如何确定对象类型是否为内置系统类型

c# - 用自定义图像替换 "red-cross"的DataGridViewImageColumn中的 "new-row"

c# - 减少两个 foreach 循环中的执行时间