只复制不同的到第二个数组
本文关键字:第二个 数组 复制 | 更新日期: 2023-09-27 18:12:37
我正试图将一个数组复制到另一个数组,该数组只复制不同的内容。在我做一个多暗淡数组之前,我已经有了这个工作。现在,当我运行下面的代码时,它只是将原始数组复制到第二个数组。我还需要保持它们在数组格式,因为我输出的网页上的数据以后。我做错了什么,或者我可以不这样做与多dim?
string[][] array;
string[][] array2;
array2 = array.Distinct().ToArray();
张贴后,我可以编辑我的文件。Readalllines不读取相同的行?代码如下,表被作为数组传递回来。
string[][] table = File.ReadAllLines(@path)
.Select(line => line.Split(';'))
.ToArray();
为简单起见。为什么不使用这个(在行级别上应用不同):
string[][] table = File.ReadAllLines(@path)
.Distinct()
.Select(line => line.Split(';'))
.ToArray();
这里的假设是,相等的行指向相同的数组。也就是说,序是两条不同直线相等定义中的一个分量。
(我认为我的评论根本没有被理解,所以添加了一个答案)
考虑你的文本文件是这样的(c:'temp'myFile.txt):
1; Name1; 100
1; Name1;100
1 ;Name1;100
11; Name1; 100
2;Name2;20
那么你可以使用如下代码得到不同的行:
void Main()
{
int custId;
decimal amount;
var content =
File.ReadAllLines(@"c:'temp'myFile.txt")
.Select(f => f.Split(';'))
.Select(f => new
{
CustomerID = int.TryParse(f[0], out custId) ? custId : -1,
Company = f[1].Trim(),
Amount = Decimal.TryParse(f[2], out amount) ? amount : 0M
})
.Where(f => f.CustomerID != -1)
.Distinct();
foreach (var c in content)
{
Console.WriteLine("CustomerID:{0}, Company:{1}, Amount:{2}", c.CustomerID, c.Company, c.Amount);
}
}