0

我有从数据库中获取 id 列表的代码。代码是使用下面的 LINQ 完成的

var resutls = (from v in con.NewsLatter
               where v.SendStatus == "Active"
               select new { v.Id }).ToList;

它从名为 NewsLater 的表中返回数据库中的所有 id。现在我要做的是填写所有的id

List<Int32>  IdList = new List<Int32>{ //list of id want to fill here in  List<Int32> };

var min = IdList .Where(x=>x>12).Min();

return min;

当我尝试像下面这样填写时

List<Int32> IdList = new List<Int32> { Convert.ToInt32(resutls) };

var min = IdList .Where(x => x > 12).Min();

return min;

我有一个例外:

 Unable to cast object of type 
'System.Collections.Generic.List`1[<>f__AnonymousType0`1[System.Int32]]' to type 
'System.IConvertible'.

有人知道这里出了什么问题吗?

4

2 回答 2

0

试试看,首先在 int 变量中声明转换后的值,然后给出值。

已编辑

         foreach (var result in resutls)
        {
            int convertedResult = Convert.ToInt32(result);

            List<Int32> IdList = new List<Int32> { convertedResult };
            IdList.Add(convertedResult);
        }
于 2013-10-18T08:18:30.850 回答
0

尝试使用AddRange 方法

List<Int32> IdList = new List<Int32>()

IdList.AddRange(resutls)

假设这resutls是一个List<Int32>本身,它看起来像是来自您的代码。

编辑:

将您的查询更改为:

var resutls = (from v in con.NewsLatter
               where v.SendStatus == "Active"
               select v.Id).ToList();

你只需要选择v.Id,你不需要创建一个新的对象new { v.Id }

于 2013-10-18T08:10:05.600 回答