2014-02-18 61 views
-1
while (sqlreader.Read()) 
{ 
    missionIdList.Add(Convert.ToInt32(sqlreader[0].ToString())); 
} 

一列添加到列表<>在上面的代码段中,missionIdList是List<long>类型和SQLReader的返回与3列的行的n个。如何在运行运行时

如何添加第四列(类型uniqueidentifier-.NET Guid)的值来自.NET变量的列表。

我想从sqlreader中获取3列,为每行返回的第四列添加4列的missionIdList List<>

还要注意的是通过SQLReader的返回的所有列都是整数,但第四列我想补充的是一个.NET的Guid

+0

您是否尝试在您的sql查询中添加此列? –

+0

@SonerGönül,该列不在数据库中,它来自.NET变量。 – StackTrace

+2

*你想拥有什么? –

回答

0

您可能需要使用匿名类型。 你的代码应该看起来像这样。

var missionIdList = new List<object>(); 

while (sqlreader.Read()) 
{ 
    var obj = new { c1 = Convert.ToInt32(sqlreader[0].ToString()), 
        c2 = Convert.ToInt32(sqlreader[1].ToString()), 
        c3 = Convert.ToInt32(sqlreader[2].ToString()), 
        uid = uid }; 
    missionIdList.Add(obj); 
} 

但是,如果你不需要它运行时添加(因为你知道你要获得什么),你只要建立你的类在使用之前,将它们添加到您的列表类型。这是正确和首选的方式。

+0

创建一个真实的类而不是匿名类可能会好很多。否则,除非使用'dynamic'关键字,否则无法将对象从列表中移出。 –