【发布时间】:2016-08-19 19:37:43
【问题描述】:
我有 2 个 csv 文件
1.csv
spain;russia;japan
italy;russia;france
2.csv
spain;russia;japan
india;iran;pakistan
我读取了两个文件并将数据添加到列表中
var lst1= File.ReadAllLines("1.csv").ToList();
var lst2= File.ReadAllLines("2.csv").ToList();
然后我从两个列表中找到所有唯一字符串并将其添加到结果列表中
var rezList = lst1.Except(lst2).Union(lst2.Except(lst1)).ToList();
rezlist 包含此数据
[0] = "italy;russia;france"
[1] = "india;iran;pakistan"
现在我想在所有行中通过 second 和 third 列来比较、制作除外和联合。
1.csv
西班牙;俄罗斯;日本
意大利;俄罗斯;法国
2.csv
西班牙;俄罗斯;日本
印度;伊朗;巴基斯坦
我想我需要用符号';'分割所有行并进行所有 3 操作(except、distinct 和 union),但不知道如何操作。
rezlist 必须包含
india;iran;pakistan
我添加了类
class StringLengthEqualityComparer : IEqualityComparer<string>
{
public bool Equals(string x, string y)
{
...
}
public int GetHashCode(string obj)
{
...
}
}
StringLengthEqualityComparer stringLengthComparer = new StringLengthEqualityComparer();
var rezList = lst1.Except(lst2,stringLengthComparer ).Union(lst2.Except(lst1,stringLengthComparer),stringLengthComparer).ToList();
【问题讨论】:
-
你有没有尝试过?
-
时刻。我添加了一些代码
-
你能举例说明这个程序应该做什么吗?
-
我将它添加到代码中。程序必须返回印度;伊朗;巴基斯坦
-
能否请您扩展更多输出示例。还请提供一些关于如何创建结果的规则