C# 根据单词的部分对数据进行排序

C# 根据单词的部分对数据进行排序,c#,.net,winforms,string,algorithm,C#,.net,Winforms,String,Algorithm,我有一个字符串数组,我想根据单词的部分进行排序。例如,如果我将“comp”作为搜索词,它将按以“comp”开头的降序对数组进行排序,例如“compare”、“composition”、“computer”等。其余不匹配的词要么单独保留,要么按字母顺序排序(以较容易的为准) 话虽如此,我可以用什么算法来解决这个问题 这将选择您需要的单词,并仅对这些单词进行排序: var sortedWords = words.Where(x => x.Contains("comp"))

我有一个字符串数组,我想根据单词的部分进行排序。例如,如果我将“comp”作为搜索词,它将按以“comp”开头的降序对数组进行排序,例如“compare”、“composition”、“computer”等。其余不匹配的词要么单独保留,要么按字母顺序排序(以较容易的为准)


话虽如此,我可以用什么算法来解决这个问题

这将选择您需要的单词,并仅对这些单词进行排序:

var sortedWords = words.Where(x => x.Contains("comp"))
                       .OrderByDescending(x => x);

哇,我已经忽略LINQ很长一段时间了,因为我不喜欢函数式语言,但我可以看出它是多么有用。实际上,我在datagridview上有提到的字符串。完成上述功能对列中的字符串进行排序的最简单方法是什么?