如何将var类型转换为int?

Gur*_*adh 2 c# asp.net var

在下面,我在我的代码中得到一个var类型变量:

var FormID = from n in dtEnDate.AsEnumerable()
             where n.Field<int>("Tax_Setup_UID") ==
                   Convert.ToInt32(item.GetDataKeyValue("Tax_Setup_UID"))
             select n.Field<string>("FormID");
Run Code Online (Sandbox Code Playgroud)

这里给了我一个蠢货.现在我想将这个var类型变量转换为int以供下次使用,如果我尝试不转换它会给我一个错误.但我无法做到,请有人帮助我.

Cod*_*ter 5

你回来select n.Field<string>("FormID"),所以实际的类型var FormIDIEnumerable<string>.

如果您知道查询将返回一个结果,您可以执行以下操作:

int formID = int.Parse(FormID.First());
Run Code Online (Sandbox Code Playgroud)

如果FormIDint您的数据库中的一个,请更改n.Field<string>n.Field<int>,您可以省略int.Parse().


mus*_*fan 5

首先,正如已经指出的那样,var它不是一种自己的类型.相反,它将采用分配给它的值的类型.您可以通过在Visual Studio中将鼠标悬停在其上来查看哪种类型.

你应该在这个例子中找到它的类型IEnumerable<string>.

所以你需要做的第一件事就是得到你想要的东西.假设您只期望一个结果,那么您可以这样做:

var item = FormID.First();//FormID is probably not a good choice for this variable name
Run Code Online (Sandbox Code Playgroud)

然后您可以将转换stringint如下:

int i = int.Parse(item);
Run Code Online (Sandbox Code Playgroud)

要么

int i = Convert.ToInt32(item);
Run Code Online (Sandbox Code Playgroud)