在执行字典排序时出错

时间:2011-08-30 16:26:40

标签: c# linq linq-to-objects

在尝试执行字典排序的字符串时出现以下错误

  

错误消息:“计数不能小于零。参数名称:计数”

 List<string> words = new List<string>();
        words.Add("collin");

        foreach (var word in words)
        {
            IEnumerable<string> sortedSubstrings =
                           Enumerable.Range(0, word.Trim().Length)
                               .Select(i => word.Substring(i))
                               .OrderBy(s => s.Length < 1 ? s : s.Remove(1, Math.Min(s.Length - 3, 3)));

        }

我试图通过在字典排序过程中跳过第2,第3和第4个字符来增强这种排序

我做错了什么?

1 个答案:

答案 0 :(得分:1)

尝试使.OrderBy行处理长度小于3并使它们为0.这就是你的例外所在。

.OrderBy(s => s.Length < 1 ? s : s.Remove(1, Math.Min(Math.Max(0,s.Length - 3), 3)));