假设我的数据表充满了数据.填充数据后,我们可以再次使用linq在数据表上添加一些条件来提取数据.
假设我的数据表有10个员工记录.因此,我们可以使用linq查询仅提取薪水大于5000的员工.我知道我们可以实现它datatable.select().你怎么能实现这个目标linq?
从这段代码我可以像我预期的那样调用bmwCars.CopyToDataTable().
var bmwCars = from car in dataTable.AsEnumerable()
where car.Field<string>("Make").ToLower().Equals("bmw")
select car;
Run Code Online (Sandbox Code Playgroud)
但是当我将一些代码声明更改为下面时,我无法调用CopyToDataTable(),为什么?
var bmwCars = from car in dataTable.AsEnumerable()
where car.Field<string>("Make").ToLower().Equals("bmw")
select new
{
Make = car.Field<string>("Make"),
Color = car.Field<string>("Color"),
PetName = car.Field<string>("PetName")
};
Run Code Online (Sandbox Code Playgroud) 我的查询如下
var result = from cr in cumulativeresult
orderby cr.Days
select new
{
Days = cr.Days,
Com = (from cr1 in cumulativeresult
where cr1.Days < cr.Days
group cr1 by 1 into cr1grp
select
new
{
Count = cr1grp.Count() + cr.Com
}),
ComPercent = Math.Round((double.Parse((
from cr1 in cumulativeresult
where cr1.Days < cr.Days
group cr1 by 1 into cr1grp
select cr1grp.Count() + cr.Com).ToString()) / ComCount) * 100, 2)
};
Run Code Online (Sandbox Code Playgroud)
但是,Com和ComPercent并没有成为价值观.我如何能够检索其中的值?我检索它们的循环如下
更新
foreach (var item in result)
{
dt.Rows.Add(item.Days, item.Com, item.ComPercent);
} …Run Code Online (Sandbox Code Playgroud)