DataTable AsEnumerable()。ToList我无法使其工作

时间:2014-06-23 13:15:13

标签: c# linq

我无法完成这项工作。我该怎么做才能让它发挥作用?谢谢

    public static List<int> lstAllMonsterIds = new List<int>();

        using (DataTable dtTemp = DbConnection.db_Select_DataTable("select MyId,Name from myTable"))
        {
 lstAllMonsterIds = dtTemp.AsEnumerable().ToList(dtr => Convert.ToInt32(dtr.Field<Int16>("PokemonId").ToString()));                           
        }

1 个答案:

答案 0 :(得分:2)

您需要List<int>返回,然后使用int选择字段,不要在其上调用ToString,最后调用ToList

lstAllMonsterIds = dtTemp.AsEnumerable()
                         .Select(dtr => dtr.Field<int>("MyId"))
                         .ToList();

如果您的字段属于Int16类型,则可以将其隐式投放到intInt32,您无需在其上调用ToString,然后将其转换为Int32