在 CStringArray 中从 5 个元素中选择 3 个元素?

Choose 3 element out of 5 in CStringArray?

在此代码中,keepSelectedFiles 有 5 个文本文件。我想选择其中的 3 个并添加到另一个数组 keepFiles 中。计数只是用户的输入。如果用户 select 3 在文本框中,则计数为 3 任何数字等

for (int i = 0; i < keepSelectedFiles.GetSize(); i++)
        {
            for (int i = 0; i < count; i++)
            {
                keepFiles.RemoveAt(keepFiles.IsEmpty());
                keepFiles.Add(keepSelectedFiles[i]);
                testbox6.AddString(keepFiles[i]);
            }
        }

请帮我看看我该怎么做?

开始吧"on paper":

假设您想从 keepSelectedFiles 中获取前三个字符串并将它们添加到 keepFiles,那么您将

  1. 获取keepSelectedFiles中的第一个字符串并添加到keepFiles
  2. 获取keepSelectedFiles中的第二个字符串并添加到keepFiles
  3. 获取keepSelectedFiles中的第三个字符串并添加到keepFiles

就这些了。

为了将其转化为代码,您制作了一个循环,该循环将迭代三 (count) 次,从 02(含)并将该数字用作索引到 keepSelectedFiles。所以生成的代码看起来像

for (int i = 0; i < count && i < keepSelectedFiles.GetSize(); ++i(
{
    keepFiles.Add(keepSelectedFiles[i]);
}

就是这样。

方法如下(性能优化):

if (count < 0)
  return; // error handling

if (count < keepSelectedFiles.GetSize())
{
  keepFiles.SetSize(count);
  for (int i=0; i<count; i++)
  {
      keepFiles[i] = keepSelectedFiles[i];
  }
}
else
{
    keepFiles.Copy(keepSelectedFiles);
}