Sort Array by包含特定的char计数

时间:2015-06-22 14:48:33

标签: c# linq

我有一个数组,我想通过它的元素排序这个数组'特定字符数。

var myNewArray = myArray.ToList().Sort(u => u.Name.Split(' ').Length);

但这根本不起作用。

如何为此问题提供LINQ代码?

myArray [0] =" word1 word2" myArray [1] =" word1" myArray [2] =" word3 word2 word2 word2"

当Apply sort我的数组元素顺序必须是这样的 myArray的[2],myArray的[0],myArray的[1]

3 个答案:

答案 0 :(得分:1)

用户OrderByDescending改为

var myNewArray = myArray.OrderByDescending(u => u.Name.Split(' ').Length).ToList();

这样可以节省你生成两个内存列表

答案 1 :(得分:1)

使用:

var myNewArray = myArray.OrderByDescending(u => u.Name.Split(' ').Length).ToList();

计算单词数

答案 2 :(得分:1)

您的代码无法编译List.Sort修改当前列表,它不会返回新的集合。

话虽如此,您需要Enumerable.OrderByDescending

  

有更多单词的句子必须是数组的顶部

由于您开始使用Array,您可以执行以下操作:

var myNewArray = myArray.OrderByDescending(u => u.Name.Split(' ').Length).ToArray();

确保包含using System.Linq;

(如果您只需要ToArray

,请移除IEnumerable<T>