Без ToList при проходе по коллекции, элемент в коллекции появляется с каждой итерацией и когда документ меняется уже нет возможности вернуть элементы, которые были или не были в старой коллекции, ToList создает копию коллекции и выгружает туда все элементы и мы можем по ним проходиться.
Довольный Жизнью, Странно. Например можно создать json, где прописаны роли, шифровать его асимметричным алгоритмом и у вас и аутентификация и авторизация сразу.
Kushin, вы сильно заблуждаетесь. Массив ссылочный тип и так по ссылке передается, ref для другого нужен, вот вам как пример https://dotnetfiddle.net/zORU7N
mletov, Объекты не копируются, в данном случае даже ref не нужен, в this.obj будет ссылка на obj, просто уберите ref и все. ref и out играют свою роль, когда вам нужно аргументу присвоить значение, вернув его вызывающей функции, однако если вы присваиваете значение аргумента, то не играет роли есть или нет ref.
NameOf Var, Ответ на ваш вопрос, пользователь авторизовался и выдаете токен. Авторизоваться можно через LDAP, а можете использовать превью System.DirectoryServices для net.core. Можете использовать сквозную авторизацию, и тогда токены не нужны(работает только через IIS).
Rohar21, Троелсон для новичка как раз, потом можно почитать Рихтера CLR via C#, однако если вы собираетесь ударится в Unity, то на этом можно остановиться. Тут вам хватит базовых принципов языка, ибо оптимизация приложений для .net немного идет в разрез с Unity, как я писал в комменте выше, Unity это не совсем .net платформа (после компиляции в байт код, последний преобразуется в С++ и там уже иные оптимизации работают).
Не забывайте, что ссылка на ссылочный тип тоже по значению передается, те на стеке копия ссылки создается, для ссылочных типов передается ссылка на ссылку, в случае описанным вами со Swap, и позволяет делать такое, менять сами ссылки, если бы в Swap не было бы ref, то мы бы поменяли копии ссылок на стеке, а оригинальные бы остались.
mletov, Да, но ref используется редко, чаще используется out, так как не требует инициализации объекта, как пример (но там используются значимые типы), Double.TryParce и Int.TryParce, результат булевый, как результат работы, out параметр в который будет записан результат (к слову просто Parce выбрасывает исключение при невозможности преобразования). Еще раз, для значимых типов передается значение, а для ссылочных, по значению ссылка передается(т.е. копии), при ref и out передается ссылка на ссылку, которую можем поменять.
Nevega, Я бы порекомендовал вместо clarity ui использовать prime ng, clarity пока очень сыроват, и многие вещи немного ужасны, например динамическое дерево.