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
。使用而不是+
。使用而不是+
。