如何"CreateOrderedEnumerable"知道相同的元素吗? [英] How do "CreateOrderedEnumerable " know the same sort of elements?

查看:81
本文介绍了如何"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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆