首页 新闻 会员 周边

关于C#3.0中新关键字var

0
[已关闭问题]
语句如下:<br><br>&nbsp;&nbsp; var cid = from channel in rsd.Channel_1 where channel.link == this.link select channel;<br><br>其中,怎么把cid转成int类型呢?<br>
墙头草的主页 墙头草 | 初学一级 | 园豆:6
提问于:2008-05-23 17:50
< >
分享
其他回答(3)
0
var类型是隐含类型,你from的结构是什么类型,它就是什么类型,不用类型转换吧!! 如果须要转换的话,int aa=cid;应该能行的吧!!
伽马科技.攻城师 | 园豆:1303 (小虾三级) | 2008-05-23 18:58
0
你怎么将一个Channel对象转换为int? 如果Channel对象包含一个int型的属性Property1,可以写成下面的样子: var cid = from channel in rsd.Channel_1 where channel.link == this.link select channel.Property1; int i = cid.First(); // 哈哈,我在乱蒙,MSDN坏了,没法查。 大概意思,cid返回的是一个IEnumerable<T>对象,其中的T是由你的Select子句推断出来的。你的例子里面,T就是Channel对象的类型。我给的代码里面,T就是Property1的类型。 而First()函数是一个扩展函数,被挂接到IEnumerable<T>上面,就可以返回第一个成员了。
Colin Han | 园豆:3041 (老鸟四级) | 2008-05-23 18:59
0
你的rsd.Channel_1是什么类型? 你这样是会返回IQueryable<你rsd.Channel_1的类型>这样的类型 是一个集合. 你可以使用cid.ElementAt(N); 来取出第N个数据, 也可以用cid.First(); 来取第一个数据. 得出的结果就是你rsd.Channel_1的类型. 你想怎转换就怎转换..
Animax! | 园豆:315 (菜鸟二级) | 2008-05-23 20:24
0
你那个CID是什么? 如果是Channel 的一个字段,Channel.CID,那么你可以直接用Select来返回 Select Channel.cid 之后,你会获得 Cid 所对应类型的 一个数组(实际是可枚举变量组,泛型的) 如果你要换成Int 那就, 使用 Select ctype(channel.cid,int) 就可以了,之后应该是 int 数组
G yc {Son of VB.NET} | 园豆:2006 (老鸟四级) | 2008-05-25 13:31
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册