C# 在两个单独的StringCollection中逐个合并行

C# 在两个单独的StringCollection中逐个合并行,c#,wpf,stringcollection,C#,Wpf,Stringcollection,我试图获取两个字符串集合,并同时合并两个集合中的每一行,以便为我的用户显示完整的文件路径 有助于消除混淆的示例: 字符串集合1将包含路径列表。 例如: C:\windows\xxxx\xxx\xx, C:\Users\xxx\xxx, C:\test\xxx\xxx file.txt, asd.txt, mydll.dll 字符串集合2将包含文件名列表。 例如: C:\windows\xxxx\xxx\xx, C:\Users\xxx\xxx, C:\test\xxx\xxx file

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

有助于消除混淆的示例:

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

    C:\windows\xxxx\xxx\xx, C:\Users\xxx\xxx, C:\test\xxx\xxx
    
    file.txt, asd.txt, mydll.dll
    
  • 字符串集合2将包含文件名列表。
    例如:

    C:\windows\xxxx\xxx\xx, C:\Users\xxx\xxx, C:\test\xxx\xxx
    
    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

第一批

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));
StringCollection行=新建StringCollection();
int lineCount=filePath.lineCount;
对于(int line=0;line
第二集

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));
StringCollection lines2=新建StringCollection();
int lineCount2=fileName.LineCount;
对于(int line=0;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);
        }
StringCollection行=新建StringCollection();
int lineCount=itemIDBox.lineCount;
对于(int line=0;line
您可以使用
System.Linq
中的
Zip
方法

var fullPaths = lines.Cast<string>().
    Zip(lines2.Cast<string>(), (path, fileName) => Path.Combine(path, fileName)).
    ToArray();
var fullpath=lines.Cast()。
Zip(lines2.Cast(),(路径,文件名)=>path.Combine(路径,文件名))。
ToArray();

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

var fullPaths = lines.Cast<string>().
    Zip(lines2.Cast<string>(), (path, fileName) => Path.Combine(path, fileName)).
    ToArray();
var fullpath=lines.Cast()。
Zip(lines2.Cast(),(路径,文件名)=>path.Combine(路径,文件名))。
ToArray();

与其使用
+
连接字符串,为什么不查找字符串。Join()方法如果不查找,则查找字符串。Split()方法您想要的路径可以只执行
string[]splitStr=Split(',')
不要使用
@“\”
,而是使用
Path.directorysepartorchar
。与其使用
+
连接字符串,不如查找字符串。Join()方法如果不查找,则查找字符串。Split()方法如果需要路径,可以执行
string[]splitStr=Split(',')不要执行
@“\”
,而是使用
路径。directoryseportorchar
。使用而不是
+
。使用而不是
+