C# LINQ查询中无法识别组方法
LINQ新手在使用分组时遇到问题。我试图查询一个名为dosesWithHighestScore的IEnumerable 我遵循这个例子: 这是我的密码:C# LINQ查询中无法识别组方法,c#,linq,linq-to-objects,C#,Linq,Linq To Objects,LINQ新手在使用分组时遇到问题。我试图查询一个名为dosesWithHighestScore的IEnumerable 我遵循这个例子: 这是我的密码: var doseWithLowestVolumeForForm = from d in dosesWithHighestScore group d by d.formulation.form into g select new {
var doseWithLowestVolumeForForm =
from d in dosesWithHighestScore
group d by d.formulation.form into g
select new {
Form = g.Key,
LowDose = g.Group.Min(d => d.doseAdministrableAmount)
};
使用“组”导致此错误:
“System.Linq.IGrouping”不包含“Group”的定义,并且找不到接受“System.Linq.IGrouping”类型的第一个参数的扩展方法“Group”(是否缺少using指令或程序集引用?)
以下是我的用法:
using System;
using System.Text;
using System.Linq;
using System.Xml.Linq;
using System.Collections.Generic;
using System.Collections;
为什么我会出现这个错误?您可以去掉分配给
低剂量的组中的术语。在LINQ to对象中,组本身就是一个IEnumerable
,因此您可以对其应用其他LINQ操作,而无需任何附加限定符。i分组
上提供了键
属性,因此您可以访问分组所依据的值。。。嗯,分组
var doseWithLowestVolumeForForm =
from d in dosesWithHighestScore
group d by d.formulation.form into g
select new {
Form = g.Key,
LowDose = g.Min(d => d.doseAdministrableAmount)
};
网站上显示使用组
属性的示例不正确。您可以在分配给低剂量
的任务中删除组
术语。在LINQ to对象中,组本身就是一个IEnumerable
,因此您可以对其应用其他LINQ操作,而无需任何附加限定符。i分组
上提供了键
属性,因此您可以访问分组所依据的值。。。嗯,分组
var doseWithLowestVolumeForForm =
from d in dosesWithHighestScore
group d by d.formulation.form into g
select new {
Form = g.Key,
LowDose = g.Min(d => d.doseAdministrableAmount)
};
网站上显示使用组
属性的示例不正确。编译-谢谢!那么,还有一个后续问题:我如何访问结果?我原以为我可以用最小的卷执行DosesForm[0]之类的操作。表单,但这不起作用。LINQ语句的结果是一个查询对象。。。不是数组。有不同的方式访问结果-这取决于你想用它们做什么。一种常见的方法是使用foreach
循环来评估每个结果;如:foreach(doseWithLowestVolumeForForm中的var项){…}
。或者,如果您只对第一个结果感兴趣,可以执行:dosewithlowervolumeforform.first()
,这将在查询中返回第一个结果。还有其他选择。。。但是,同样,这取决于你需要对结果做什么。这会编译-谢谢!那么,还有一个后续问题:我如何访问结果?我原以为我可以用最小的卷执行DosesForm[0]之类的操作。表单,但这不起作用。LINQ语句的结果是一个查询对象。。。不是数组。有不同的方式访问结果-这取决于你想用它们做什么。一种常见的方法是使用foreach
循环来评估每个结果;如:foreach(doseWithLowestVolumeForForm中的var项){…}
。或者,如果您只对第一个结果感兴趣,可以执行:dosewithlowervolumeforform.first()
,这将在查询中返回第一个结果。还有其他选择。。。但是,同样,这取决于你需要对结果做什么。