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
foreach(var single in jaggedarray)
{
}
但由于将所有值放在一个额外的数组中,并将每个字段与单个数组的每个字段进行比较以做出决策的复杂性,我迷失了方向
我现在做的是按字母顺序排列每个字符串
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。你能帮我回答这个问题吗: