C# 转换短?到System.Collection.Generic.List

C# 转换短?到System.Collection.Generic.List,c#,.net,asp.net-mvc,linq,C#,.net,Asp.net Mvc,Linq,我有一个名为filter的变量从视图传递到SaleList。当它第一次加载时,它总是空的,应该是空的。我似乎对else语句k=filter有问题。我试过一些运气不好的东西。任何帮助都将不胜感激 无法将类型short?[]隐式转换为System.Collection.Generic.List 我不知道如何转换这个 short? filter = sale.SalesStatusID; List<short> k; if (filter == null) { k = (fro

我有一个名为filter的变量从视图传递到SaleList。当它第一次加载时,它总是空的,应该是空的。我似乎对else语句k=filter有问题。我试过一些运气不好的东西。任何帮助都将不胜感激

无法将类型short?[]隐式转换为System.Collection.Generic.List

我不知道如何转换这个

short? filter = sale.SalesStatusID;

List<short> k;

if (filter == null)
{
    k = (from s in _db.SalesStatus
        select s.SaleStatusID).ToList();
}
else
{
    k = filter;
}

var sales = from t in _db.Sales
    where k.Contains((short) t.SalesStatusID)
    select t;
short?过滤器=sale.SalesStatusID;
清单k;
if(filter==null)
{
k=(从s到_db.SalesStatus)
选择s.SaleStatusID).ToList();
}
其他的
{
k=过滤器;
}
var销售额=从t in_db.sales
其中k.Contains((短)t.SalesStatusID)
选择t;

变量
k
short
的集合,而您的
filter
变量是可为空的short。不能将可为空的短(单重项)分配给集合类型

您可以使用过滤器变量值创建集合并分配它

List<short> k;
if (filter != null)
{
    k = new List<short> { filter.Value };
}
else
{
   k = new List<short>();
}

变量
k
short
的集合,您的
filter
变量是可为空的short。不能将可为空的短(单重项)分配给集合类型

您可以使用过滤器变量值创建集合并分配它

List<short> k;
if (filter != null)
{
    k = new List<short> { filter.Value };
}
else
{
   k = new List<short>();
}
您正在将k(一种列表类型)赋值给filter的值(一种可为null的短类型),您需要将else语句更改为

else
{
    k.Add(filter.Value);
}
您正在将k(一种列表类型)赋值给filter的值(一种可为null的短类型),您需要将else语句更改为

else
{
    k.Add(filter.Value);
}

k
被声明为类型
List
——但是
过滤器
是可空的
short
,而不是
列表
。查看
无法将类型short?[]隐式转换为System.Collection.Generic.List
您是否100%确定这是您的确切错误?
k
声明为类型
List
-但是
筛选器
是可空的
short
,而不是
列表。查看
无法将short?[]类型隐式转换为System.Collection.Generic.List
是否100%确定这是您的确切错误?