如何在LINQ中使用可空的内置变量
本文关键字:内置 变量 LINQ | 更新日期: 2023-09-27 18:08:50
我是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查询中使用可空字符串…div ?
string
已经是一个引用类型,它可以容纳null
,你不必使用string?
错误提示:
类型'string'必须是一个非空值类型....
值类型只能使用Nullable<T>
。
Nullable<T>
表示一个可以赋值为null的值类型。
你正试图用string?
声明字段,这等于Nullable<string>
,但这只能用值类型完成。
在c#和Visual Basic中,可以使用? 值类型后面的符号。例如,int?c#还是Integer?在Visual Basic中声明了一个可赋值的整数值类型空
.