确定linq查询

时间:2017-11-30 16:00:55

标签: c# linq types

我有这个LINQ查询:

double[] _x = CV.trainingDataTable.AsEnumerable()
                .Where(x => x.Field<int>("rk") == i)
                .Select(x => x.Field<double>("years"))
                .ToArray();

我的问题是我不确定“rk”和“years”列中值的数据类型是什么,它引发了一个异常。 想知道如何重新编写此查询以更灵活 非常感谢。

1 个答案:

答案 0 :(得分:1)

你说灵活但我说会更容易出错。 Field-extension method是类型安全的。它将使您能够使用正确的类型,而不是摆弄System.ObjectDataRow实际存储)。但你必须知道它是什么类型。

由于上述原因,我不会告诉你如何规避它(例如,使用ToString然后解析为你想要的类型)。你应该知道它是什么类型。

您可以通过表格Columns检测types of the DataColumn

Type theTypeOfTheColumnRK = CV.trainingDataTable.Columns["rk"].DataType;
Type theTypeOfTheColumnYears = CV.trainingDataTable.Columns["years"].DataType;

您可以在调试器中执行这些语句以确定类型。