只复制不同的到第二个数组

本文关键字:第二个 数组 复制 | 更新日期: 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);
    }  
}