[英]How to use var more than once in linq?
var ID, x,y
switch(ItemTypeNo)
{
case ItemType.A :
ID = from s in cntx.Tablo1
break;
case ItemType.B :
ID = from s in cntx.Tablo2
break;
case ItemType.C :
ID = from s in cntx.Tablo3
break;
}
您只能将var
用于内联初始化,事实并非如此。 您将需要适当地键入ID
,并且由于var
具有仅在Tablo1
, Tablo2
和Tablo3
是相同类型(这似乎不太可能)时才起作用的单一类型。
您在这里需要做什么?
还有的是 ,在这里工作的情形; 从每个中选择一个通用类型时; 让我们假设它们都具有一个int
主键:
IQueryable<int> ids;
switch(ItemTypeNo)
{
case ItemType.A : ids= from s in cntx.Tablo1 select s.Id; break;
case ItemType.B : ids= from s in cntx.Tablo2 select s.Id; break;
case ItemType.C : ids= from s in cntx.Tablo3 select s.Id; break;
default: throw new InvalidOperationException();
}
但是,在一般情况下...并不是很多。 您可以将ID
键入为非通用的IQueryable
,但老实说,这不能让您做很多有趣的事情。 dynamic
在LINQ上不能很好地发挥作用(即使这样做,在这里也很容易被破解)。
如果没有初始化,则不能声明匿名类型“ var”。 一旦初始化了“ var”(一旦从使用情况推断出),就无法在其整个生命周期中对其进行更改。
您可以将ID声明为IQueryable
因为这是通用IQueryable<T>
基本类型
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.