Почему делает nullable KeyValuePair <> не имейте никакого ключевого свойства?

Вы можете использовать ls() и простое регулярное выражение, чтобы поймать ваши тесты, т.е.

v1 <- ls()[grepl('^t[0-9]+', ls())]
#[1] "t1" "t2" "t3"

Затем вы можете прикрепить v1 к вашему фрейму данных, как обычно (df$namess <- v1)

12
задан Andrew Hare 7 May 2009 в 15:07
поделиться

2 ответа

Try this instead:

myKVP.Value.Key;

Here is a stripped down version of System.Nullable:

public struct Nullable<T> where T: struct
{
    public T Value { get; }
}

Since the Value property is of type T you must use the Value property to get at the wrapped type instance that you are working with.

Edit: I would suggest that you check the HasValue property of your nullable type prior to using the Value.

if (myKVP.HasValue)
{
    // use myKVP.Value in here safely
}
22
ответ дан 2 December 2019 в 07:04
поделиться

Это связано с тем, что типам, допускающим значение NULL, может быть присвоено значение NULL или фактическое значение, поэтому вы должны вызывать ".value" для всех типов, допускающих значение NULL. ".value" вернет базовое значение или вызовет исключение System :: InvalidOperationException.

Вы также можете вызвать ".HasValue" для типа, допускающего значение NULL, чтобы убедиться, что фактическому типу присвоено значение.

0
ответ дан 2 December 2019 в 07:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: