繁体   English   中英

如何在linq中多次使用var?

[英]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具有仅在Tablo1Tablo2Tablo3是相同类型(这似乎不太可能)时才起作用的单一类型。

您在这里需要做什么?

还有的 ,在这里工作的情形; 从每个中选择一个通用类型时; 让我们假设它们都具有一个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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM