0

我正在尝试获取两个字符串集合并同时组合两个集合中的每一行,以便为我的用户显示完整的文件路径。

帮助消除混淆的示例:

  • 字符串集合 1 将包含路径列表。
    例子:

    C:\windows\xxxx\xxx\xx, C:\Users\xxx\xxx, C:\test\xxx\xxx
    
  • 字符串集合 2 将包含文件名列表。
    例子:

    file.txt, asd.txt, mydll.dll
    

每个列表都在同一行号中相互保存密钥,我只需将它们组合起来即可将它们输出给最终用户。

String Collection Line 1 + SC2 Line 1 = Path
SC Line 2 + SC2 Line 2 = Path
SC Line 3 + SC2 Line 3 = Path

在组合状态下无法访问信息,因此我将把数据放入两个单独的 WPF 文本框,然后将它们的内容拉入字符串集合。

第一次收藏

StringCollection lines = new StringCollection();
int lineCount = filePath.LineCount;

for (int line = 0; line < lineCount; line++)
    // Get line text and add to string collection
    lines.Add(filePath.GetLineText(line));

第二次收藏

StringCollection lines2 = new StringCollection();
int lineCount2 = fileName.LineCount;

for (int line = 0; line < lineCount; line++)
    // Get line text and add to string collection
    lines.Add(fileName.GetLineText(line));

任何和所有的帮助表示赞赏!

编辑 1

感谢 Eve,我已经尝试了 ZIP 命令,但我也找到了一条替代路线。与下面的代码相比,使用 zip 是否有更安全的路线?

请记住,我将具有检查行数并确保它们相同的功能。

        StringCollection lines = new StringCollection();
        int lineCount = itemIDBox.LineCount;

        for (int line = 0; line < lineCount; line++)
        {
            string id;
            string rev;
            string combined;

            id = itemIDBox.GetLineText(line);
            rev = revBox.GetLineText(line);

            combined = id + @"\" + rev;

            lines.Add(combined);
        }
4

1 回答 1

4

您可以使用 中的Zip方法System.Linq

var fullPaths = lines.Cast<string>().
    Zip(lines2.Cast<string>(), (path, fileName) => Path.Combine(path, fileName)).
    ToArray();
于 2013-01-10T22:27:27.200 回答