除LINQ中的字符串外,如何删除长度相同的字符串?

zer*_*iel 0 c# linq

我有一个按字符串长度排序的Enumerable字符串序列(所有字符串都是大写的).如何按字母顺序排序此序列,然后删除具有相同长度的所有字符串,除了LINQ中每个长度组中的一个?

例如: ORIEW DRERE EWKD OPPA LTS ERS YT GL HF 应该是 DRERE EWKD ERS GL

Hab*_*bib 10

如果您将元素定义为:

string[] elements = new[]
           {
               "ORIEW",
               "DRERE",
               "EWKD",
               "OPPA",
               "LTS",
               "ERS",
               "YT",
               "GL",
               "HF"
           };
Run Code Online (Sandbox Code Playgroud)

然后你可以使用:

var result = elements.OrderBy(r => r)
                    .GroupBy(r => r.Length)
                    .Select(grp => grp.First());
Run Code Online (Sandbox Code Playgroud)

对于输出,您可以使用:

foreach (var item in result)
{
    Console.WriteLine(item);
}
Run Code Online (Sandbox Code Playgroud)

你会回来的:

DRERE
ERS
EWKD
GL
Run Code Online (Sandbox Code Playgroud)

(与ORDER BY你应该还记得ERS之前EWKD-在问题不喜欢)