Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/321.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在字符串[]中以不同顺序删除相同的值?_C# - Fatal编程技术网

C# 如何在字符串[]中以不同顺序删除相同的值?

C# 如何在字符串[]中以不同顺序删除相同的值?,c#,C#,我有一个像那样的字符串[][]jaggedarray 你好1,你好2,你好3 你好,你好,你好 Hello3,Hello1,Hello2 我试着通过所有的线,就像在 foreach(var single in jaggedarray) { } 但由于将所有值放在一个额外的数组中,并将每个字段与单个数组的每个字段进行比较以做出决策的复杂性,我迷失了方向 我现在做的是按字母顺序排列每个字符串 你好1,你好2,你好3 你好,你好,你好 Hello3,Hello1,Hello2 变成 你好1,你好2

我有一个像那样的
字符串[][]jaggedarray

  • 你好1,你好2,你好3
  • 你好,你好,你好
  • Hello3,Hello1,Hello2
  • 我试着通过所有的线,就像在

    foreach(var single in jaggedarray)
    {
    
    }
    
    但由于将所有值放在一个额外的数组中,并将每个字段与单个数组的每个字段进行比较以做出决策的复杂性,我迷失了方向

    我现在做的是按字母顺序排列每个字符串

  • 你好1,你好2,你好3
  • 你好,你好,你好
  • Hello3,Hello1,Hello2
  • 变成

  • 你好1,你好2,你好3
  • 你好,你好,你好
  • 你好1,你好2,你好3
  • 然后对其使用distinct()

    它是这样工作的,但我正在寻找一种优雅的方式,因为现在我的代码中有很多来回转换

    删除
    1.
    3.
    的函数会是什么样子,因为它们包含相同的值,但顺序不同?

    这对我很有用:

    var jaggedarray = new []
    {
        new [] { "Hello1", "Hello2", "Hello3" },
        new [] { "Hello4", "Hello5", "Hello6" },
        new [] { "Hello3", "Hello1", "Hello2" },
    };
    
    jaggedarray =
        jaggedarray
            .Aggregate(
                new string[0][],
                (a, x) =>
                    a.Any(y => !x.Except(y).Any())
                        ? a
                        : a.Concat(new [] { x }).ToArray());
    
    基本上,这段代码从一个空的锯齿数组(
    newstring[0][]
    )开始,并在
    jaggedarray
    中迭代,仅当不存在任何具有完全相同元素的数组时,才添加每个子数组。然后它将最终输出重新分配给
    jaggedarray

    我明白了:


    只是吹毛求疵,但
    string[][]
    不是2D数组,而是锯齿状数组<代码>字符串[,]是2D。您能将输入数据显示为有效的C#代码和所需的输出吗?如果你能展示你尝试过的东西,即使它不起作用,甚至无法编译,那也太好了。@VitalisHommel-Done。你能帮我回答这个问题吗: