[英]How to use nullable built-in variables in LINQ?
我是LINQ的新手,在这里我对此有疑问。
我这里有一个非常简单的类,用于演示:
public class CurrencyPair
{
public string? cultureCode;
public string? currencyName;
public CurrencyPair(string iCultureCode, string iCurrencyName)
{
cultureCode = iCultureCode;
currencyName = iCurrencyName;
}
public CurrencyPair()
{
cultureCode = "";
currencyName = "";
}
}
然后我有一个以上类的实例列表:
static List<CurrencyPair> currencyPairs;
现在,我正在尝试这样做:
public List<string> GetCurrencyNames()
{
return (from c in currencyPairs select c.currencyName).Distinct().ToList();
}
但是我得到这个错误:
The type 'string' must be a non-nullable value type in order to use it as parameter 'T' in the generic type or method 'System.Nullable<T>'
如果我删除?
对于类定义中的cultureCode
和currencyName
,此错误消失了。
那么,如何在LINQ查询中使用可为空的字符串呢?
string
已经是一个引用类型 ,它可以容纳null
,您不必使用string?
该错误也表明:
类型“字符串”必须是非空值类型。
您只能将Nullable<T>
与值类型一起使用。
表示可以分配为null 的值类型 。
您正在尝试使用string?
声明字段string?
它等于Nullable<string>
,但这只能使用value类型完成。
在C#和Visual Basic中,使用?将值类型标记为可为空。 值类型后的符号。 例如int? 用C#还是Integer? 在Visual Basic中声明一个可以分配为null的整数值类型
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.