Я вижу это Array.ConvertAll
метод, но это требует a Converter
как аргумент. Я не вижу, почему мне нужен преобразователь, когда я уже определил неявный в своем классе:
public static implicit operator Vec2(PointF p)
{
return new Vec2(p.X, p.Y);
}
Я пытаюсь бросить массив PointF
s к массиву Vec2
s. Существует ли хороший способ сделать это? Или я должен просто высосать его и запись (другой) преобразователь или цикл по элементам?
Cast не учитывает определяемые пользователем неявные преобразования, поэтому невозможно привести массив таким образом. Вместо этого можно выбрать
myArray.Select(p => (Vec2)p).ToArray();
Или написать конвертер:
Array.ConvertAll(points, (p => (Vec2)p));
Последний, вероятно, более эффективен, поскольку размер результата заранее известен.
-121--1036922-В диалоговом окне «Проверка» перейдите на вкладку «Предупреждение об ошибке» и снимите флажок «Показывать предупреждение об ошибке после ввода недопустимых данных».
-121--3286753- Предлагаемое решение LINQ с использованием Cast
/' Select 'прекрасно, но поскольку вы знаете, что работаете с массивом здесь, использование ConvertAll
является более эффективным и столь же простым.
var newArray = Array.ConvertAll(array, item => (NewType)item);
Использование ConvertAll
означает
a) массив итерируется только один раз,
b) операция более оптимизирована для массивов (не использует IEnumerator < T >
).
Не позволяйте типу Converter < TInput, TOutput >
сбить вас с толку - это простой делегат, и, таким образом, вы можете передать лямбда-выражение для него, как показано выше.
UITextField
предназначен только для однострочного текста. Если требуется несколько строк текста, необходимо использовать класс UITextView
.
Следует отметить, что UITextView
наследует от UIScrollView
, поэтому если вы не хотите прокрутки, вы можете придерживаться UITextField
и мириться с текстом, находящимся в одной строке... Однажды я попытался подкласс UITextView
, чтобы сделать его похожим на многострочный UITextField
, но UIScrollView
сделал задачу кошмаром - в конце концов я просто вернулся к использованию простого UITextField
.
Некоторые произвольные вычисления, основанные на выборке. Тип «m a» является случайной переменной типа «a» и «a - > m b» является «случайной функцией». Случайные величины могут очень просто обрабатываться таким образом. «replicateM n» используется для получения независимых выборок из той же переменной.
Запись do также хорошо: x < - y означает x - выборка из случайной величины y.
-121--3153583-Cast не учитывает неявные преобразования, определяемые пользователем, поэтому невозможно привести массив таким образом. Вместо этого можно выбрать
myArray.Select(p => (Vec2)p).ToArray();
Или написать конвертер:
Array.ConvertAll(points, (p => (Vec2)p));
Последний, вероятно, более эффективен, поскольку размер результата заранее известен.