gpt4 book ai didi

c# - 需要比较从单独的 foreach 循环产生的值

转载 作者:行者123 更新时间:2023-11-30 22:14:34 27 4
gpt4 key购买 nike

我有两个foreach循环,每个循环遍历一个文本文件,只获取前两列的所有值的值(文本文件中有两列以上,用“|”分隔) ) 并将其放入字符串中。我想比较这些 foreach 循环的结果(Response.Write 语句输出的值)以查看字符串是否等效。任何想法/建议表示赞赏。

protected void Page_Load(object sender, EventArgs e)
{
string textFile1 = @"C:\Test\Test1.txt";
string textFile2 = @"C:\Test\Test2.txt";
string[] textFile1Lines = System.IO.File.ReadAllLines(textFile1);
string[] textFile2Lines = System.IO.File.ReadAllLines(textFile2);
char[] delimiterChars = { '|' };

foreach (string line in textFile1Lines)
{
string[] words = line.Split(delimiterChars);
string column1And2 = words[0] + words[1];
Response.Write(column1And2);
}

foreach (string line in textFile2Lines)
{
string[] words = line.Split(delimiterChars);
string column1And2 = words[0] + words[1];
Response.Write(column1And2);
}
}

最佳答案

比较输出的一种方法是随时存储字符串,然后使用 SequenceEqual 比较结果。 .由于这两个循环是相同的,请考虑从中创建一个静态方法:

// Make the extraction its own method
private static IEnumerable<string> ExtractFirstTwoColumns(string fileName) {
return System.IO.File.ReadLines(fileName).Select(
line => {
string[] words = line.Split(delimiterChars);
return words[0] + words[1];
}
);
}

protected void Page_Load(object sender, EventArgs e)
// Use extraction to do both comparisons and to write
var extracted1 = ExtractFirstTwoColumns(@"C:\Test\Test1.txt").ToList();
var extracted2 = ExtractFirstTwoColumns(@"C:\Test\Test2.txt").ToList();
// Write the content to the response
foreach (var s in extracted1) {
Response.Write(s);
}
foreach (var s in extracted2) {
Response.Write(s);
}
// Do the comparison
if (extracted1.SequenceEqual(extracted2)) {
Console.Error.WriteLine("First two columns are different.");
}
}

关于c# - 需要比较从单独的 foreach 循环产生的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18451277/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com