从数组中获取不同的输出
本文关键字:输出 获取 数组 | 更新日期: 2023-09-27 17:58:49
来自字符串数组
string[] str1={"u1-u2","u1-u2","u1-u4","u4-u1"};
string[] str2 = str1.Distinct().ToArray();
数组中的不同元素是:"u1-u2"
、"u1-u4"
、"u4-u1"
但我必须得到这样不同的输出:"u1-u2"
,"u1-u4"
。
所以请帮我解决
您可以这样做:
string[] output = str1.Select(s => new { Value = s, NormalizedValue = string.Join("-", s.Split('-').OrderBy(_ => _)) })
.GroupBy(p => p.NormalizedValue)
.Select(g => g.OrderBy(p => p.Value).First().Value)
.ToArray();
您可以将所有值转换为它们的标准化形式,并在上面调用Distinct()
:
string[] output = str1.Select(string.Join("-", s.Split('-').OrderBy(x => x)))
.Distinct()
.ToArray();
(这是基于Ulugbek Umirov的回答中的代码。)