如何"CreateOrderedEnumerable"知道相同的元素吗? [英] How do "CreateOrderedEnumerable " know the same sort of elements?
本文介绍了如何"CreateOrderedEnumerable"知道相同的元素吗?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
"CreateOrdredEnumerable"如何知道"OrderBy"和"IOrderedEnumerable"的排序键只有两种方法,没有相同元素的顺序记录."CreateOrderedEnumerable"如何工作? :
how do "CreateOrdredEnumerable" know what the sort keys of "OrderBy", and "IOrderedEnumerable" only two methods, No record of the order of elements with the same.How do "CreateOrderedEnumerable" work? :
<pre lang="cs">string[] fruits = { "ee","cc","aa", "ddd", "bbb","aaa" };
IOrderedEnumerable<string> sortedFruits2 =
fruits.OrderBy(fruit => fruit.Length);
foreach (string fruit in sortedFruits2)
Console.WriteLine(fruit);
//output:
//ee
//cc
//aa
//ddd
//bbb
//aaa
//"ee,cc,aa" have the same level sort."ddd,bbb,aaa" have the same level sort.
//now "CreateOrderedEnumerable" sort "ee,cc,aa" and "ddd,bbb,aaa".
//How do "CreateOrderedEnumerable " know the same sort of elements?
IOrderedEnumerable<string> sortedFruits3 =
sortedFruits2.CreateOrderedEnumerable<string>(
fruit => fruit,
Comparer<string>.Default, false);
Console.WriteLine();
foreach (string fruit in sortedFruits3)
Console.WriteLine(fruit);
推荐答案
您似乎正在尝试将苹果与橙子进行比较...
It looks like you''re attempting to compare apples to oranges...
IOrderedEnumerable<string> sortedFruits2 =
fruits.OrderBy(fruit => fruit.Length);
正在按字符串长度对数组进行排序,并且我假设在抢七中使用正常的字符串比较(即字母顺序).
Is ordering the array by string length, and I assume is using a normal string comparison (ie alphabetical) in a tie break.
IOrderedEnumerable<string> sortedFruits3 =
sortedFruits2.CreateOrderedEnumerable<string>(
fruit => fruit,
Comparer<string>.Default, false);
使用默认比较对字符串进行排序,这样您就可以按字母顺序进行排序.
Your ordering the strings using the default comparison so you get an alphabetical ordering.
这篇关于如何"CreateOrderedEnumerable"知道相同的元素吗?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文