Конечно, разумная вещь - использовать Select(i => (long)i)
, и это то, что я бы рекомендовал для конверсий между встроенными типами значений и для пользовательского преобразования.
Но так же, как любопытный замечание, так как .NET 4 можно сделать свой собственный метод расширения, который также работает с этими видами конверсий. Но для этого требуется, чтобы вы использовали ключевое слово dynamic
. Это происходит просто так:
public static IEnumerable<TResult> CastSuper<TResult>(this IEnumerable source)
{
foreach (var s in source)
yield return (TResult)(dynamic)s;
}
Как я уже говорил, работает с интегральными преобразованиями (сужение или расширение преобразований), числовые преобразования в / из / между типами с плавающей запятой и «методы» преобразования implicit operator
и explicit operator
.
И, конечно же, он по-прежнему работает с хорошими старыми обратными преобразованиями и распаковками, такими как оригинал System.Enumerable.Cast<TResult>
.
Мне удалось найти решение со следующим
window.resolveLocalFileSystemURL(cordova.file.externalRootDirectory + "Android/data/app.name/files/", success, fail);