Вопрос по Sample от Google Analytics
От: StatujaLeha на правах ИМХО
Дата: 21.10.16 20:56
Оценка: :)
Всех приветствую.

Решил посмотреть, как пишут код в Google
Просто периодически делаю такое: ищу публичные проекты известных компаний и смотрю "а как там большие посоны делают дела".

В этот раз смотрел Google-Dotnet-Samples/Google-Analytic.
https://github.com/LindaLawton/Google-Dotnet-Samples/blob/master/Google-Analytics/Daimto-Google-Analytics-Sample/Daimto-Google-Analytics-Sample/Program.cs

    class Program
    {
        static void Main(string[] args)
        {
            ......
           
            //Getting a list of the Dimensions and metrics.

            string lastGroup = string.Empty;
            string lastType = string.Empty;
            Columns metadata = DaimtoAnaltyicsMetaDataHelper.MetaDataList(service);
            foreach (Column column in metadata.Items.OrderBy(a => a.Attributes["group"]).OrderBy(a => a.Attributes["type"]).ToList())
            {
                if (column.Attributes["group"] != lastGroup)
                {
                    Console.WriteLine("Group: " + column.Attributes["group"]);
                    lastGroup = column.Attributes["group"];
                    lastType = string.Empty;
                }
                if (column.Attributes["type"] != lastType)
                {
                    Console.WriteLine("\t" + column.Attributes["type"]);
                    lastType = column.Attributes["type"];
                }

                Console.WriteLine("\t\t" + column.Attributes["uiName"] + " : " + column.Id);
        
            ......
        }
    }


1. Может есть какой-то таинственный смысл в OrderBy().OrderBy()?
2. А в ToList() после этого?

Сделал свой пример.
И если OrderBy().OrderBy() отличается и от просто второго OrderBy(), и от OrderBy().ThenBy(), то в вызове ToList() я пока совсем никакого смысла не вижу.
    #region Google Analytics

    public struct Pair
    {
        public int First;
        public int Second;
        public int Index;
    }
    
    #endregion

    class Program
    {
        static void Print(IEnumerable<Pair> S)
        {
            foreach (var s in S)
            {
                Console.WriteLine(string.Format("Index: {0} First: {1}, Second: {2}", s.Index, s.First, s.Second));
            }
        }

        static void Main(string[] args)
        {
            int size = 10;
            int M = 5;
            var S = Enumerable.Range(0, size).Select(e => new Pair() { First = e % M, Second = e % 2, Index = e });

            Console.WriteLine("No sort");
            Print(S);

            Console.WriteLine();
            Console.WriteLine("OrderBy(First)");
            Print(S.OrderBy(e => e.First));

            Console.WriteLine();
            Console.WriteLine("OrderBy(Second)");
            Print(S.OrderBy(e => e.Second));

            Console.WriteLine();
            Console.WriteLine("OrderBy(First).OrderBy(Second)");
            Print(S.OrderBy(e => e.First).OrderBy(e => e.Second));

            Console.WriteLine();
            Console.WriteLine("OrderBy(First).ThenBy(Second)");
            Print(S.OrderBy(e => e.First).ThenBy(e => e.Second));
        }
    }
Re: Вопрос по Sample от Google Analytics
От: Sharov Россия  
Дата: 21.10.16 23:23
Оценка: +1
Здравствуйте, StatujaLeha, Вы писали:

SL>Всех приветствую.


.net -- это не поофиль гугла. Я бы в последнюю очережь у них смотрел. Есть куча кодовой базы от мс, начиная от исходников фреймворка.
Кодом людям нужно помогать!
Re: Вопрос по Sample от Google Analytics
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 21.10.16 23:24
Оценка:
Здравствуйте, StatujaLeha, Вы писали:

SL>1. Может есть какой-то таинственный смысл в OrderBy().OrderBy()?


Никакого. Очередной перец наступил на классические грабли и незнание про ThenBy.

SL>2. А в ToList() после этого?


Отключает ленивость.
... << RSDN@Home 1.0.0 alpha 5 rev. 0 on Windows 8 6.2.9200.0>>
AVK Blog
Re[2]: Вопрос по Sample от Google Analytics
От: StatujaLeha на правах ИМХО
Дата: 22.10.16 08:12
Оценка:
Здравствуйте, Sharov, Вы писали:

Это да, у них я тоже смотрел.
Просто решил и у Гугла глянуть.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.