在一组数据行中获取不同的列值 - 数据表Linq C#

时间:2017-02-08 11:14:01

标签: c# linq datatable linq-to-dataset

我有一个包含四列和一些数据行的简单数据表:

DataTable results = new DataTable();
results.Columns.Add("Wellbore", typeof(string));
results.Columns.Add("Date", typeof(DateTime));
results.Columns.Add("WB", typeof(string));
results.Columns.Add("factor", typeof(double));

当“date = 1/1 / 2017”时,我使用Linq查询获取“数据行列表”:

var AllRowsAtPlanningDate = results.AsEnumerable()
   .Where(x => ((x.Field<DateTime>("Date") == PlanningDate))).ToList();

我想在wellbore的“AllRowsAtPlanningDate”列中获得“不同”值。我只想要List<string>而不是list<datarows>

怎么做?我一直在检查这里的一些例子,但无济于事。

1 个答案:

答案 0 :(得分:5)

var AllRowsAtPlanningDate = results.AsEnumerable()
         .Where(r => r.Field<DateTime>("Date") == PlanningDate) // filter rows by date
         .Select(r => r.Field<string>("Wellbore")) // select only wellbore string value
         .Distinct() // take only unique items
         .ToList();