在两个单独的StringCollections中组合行的行

时间:2013-01-10 22:23:27

标签: c# wpf stringcollection

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

帮助消除混淆的例子:

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

    C:\windows\xxxx\xxx\xx, C:\Users\xxx\xxx, C:\test\xxx\xxx
    
  • String Collection 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文本框中,然后将其内容提取到字符串集中。

First Collection

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

1 个答案:

答案 0 :(得分:4)

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

var fullPaths = lines.Cast<string>().
    Zip(lines2.Cast<string>(), (path, fileName) => Path.Combine(path, fileName)).
    ToArray();