我有一个数组,我想通过它的元素排序这个数组'特定字符数。
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]
答案 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>