如何将列添加到列<>在运行时

时间:2014-02-18 07:13:21

标签: c# list c#-4.0

while (sqlreader.Read())
{
   missionIdList.Add(Convert.ToInt32(sqlreader[0].ToString()));
}

在上面的代码片段中,missionIdList的类型为List<long>,sqlreader返回n行的3列。

如何添加第四列(uniqueidntifier类型为.NET Guid),其值来自.NET变量到列表中。

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

另请注意,sqlreader返回的所有列都是整数,但我要添加的第四列是.NET Guid

1 个答案:

答案 0 :(得分: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);
}

但是如果您不需要从运行时添加它(因为您知道将要接收的内容),您只需在使用之前构建类并将它们添加到您键入的列表中。这是正确和首选的方式。