在CStringArray中选择5个元素中的3个

Choose 3 element out of 5 in CStringArray?

本文关键字:3个 元素 选择 CStringArray 5个      更新时间:2023-10-16

在这段代码中,keepSelectedFiles有5个文本文件。我想从中选择3个,并添加到另一个数组keepFiles中。计数只是用户的输入。如果用户在文本框中选择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]);
}
}

请帮我怎么做?

以下是实现(性能优化)的方法:

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);
}

让我们"在纸上"做吧:

假设你想从keepSelectedFiles中获得三个第一个字符串,并将它们添加到keepFiles中,那么你就可以

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

仅此而已。

要将其转换为代码,您需要制作一个循环,从02(包括count)迭代三次,并将该数字用作keepSelectedFiles的索引。因此生成的代码看起来像

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

就是这样。