OrderedEnumerableRowCollection类型System.IConvertible

时间:2014-03-18 06:55:23

标签: c# linq

我在以下代码中获得了Exception,我该如何解决?

DataTable RDT = new DataTable();
RDT = ds.Tables[0];
List<int> result = new List<int>();
Random rand = new Random();
result.Add(Convert.ToInt32(RDT.AsEnumerable().OrderBy(r => rand.Next())));

最后一行有例外:

Unable to cast object of type 'System.Data.OrderedEnumerableRowCollection`1[System.Data.DataRow]' to type 'System.IConvertible'.

1 个答案:

答案 0 :(得分:2)

DataTable RDT = new DataTable();
RDT = ds.Tables[0];
Random rand = new Random();
List<int> result = RDT.AsEnumerable()
                      .Select(row => Convert.ToInt32(row[0]))
                      .OrderBy(r => rand.Next())
                      .ToList();

您需要转换每行的第一个字段,或者完整的行集合。

别忘了using System.Linq