使用C#的字典排序算法

时间:2011-07-20 11:59:22

标签: c# vb.net linq algorithm

我正在努力编写一种排序算法,可以按字典顺序(字母顺序)对单词中的字符进行排序,如下所示

字典的单词: - 污染

  

字典顺序
  排序文本索引
  ------------------ ----------
  胺化0
  1   污染2
  ination 3
  离子4
  mination 5
  n 6
  国家7   ntamination 8
  9月9日   污染10
  tamination 11
  第12页

有没有人可以帮忙在C#或VB.NET中编写一个伪代码/或实现,如何对上述单词进行字典排序?

4 个答案:

答案 0 :(得分:6)

你可以这样做:

var parts = new List<string>();
for (int i = 0; i < word.Length; i++)
    parts.Add(word.Substring(i));

parts.Sort();

输出应该符合您的预期。

答案 1 :(得分:3)

string str = "contamination";
IEnumerable<string> sortedSubstrings =
    Enumerable.Range(0, str.Length)
              .Select(i => str.Substring(i))
              .OrderBy(s => s);

答案 2 :(得分:1)

试试这个:

dpkg -i ubuntu14_CloudBerryLab_CloudBerryBackup_v1.10.0.112_20161110193906.deb

答案 3 :(得分:0)

默认的C#排序功能按字典顺序对字符串进行排序,因此在您的情况下:

YourList.Sort();

应该这样做,如果你想自定义排序功能,你可以将一个函数传递给Sort方法:

YourList.Sort((a, b) => SomeSortingFunction(a,b));

当您编写SomeSortingFunction时,如果a在b之前,请确保它返回负值,如果a在b之后则为正值,如果它们相等则返回零。