我试图返回一组使用子字符串修剪的独特结果,但当我调用“Select”时,它会将其转换为匿名类型。我似乎无法得到这个维护类型“列表”。我只需要返回Select方法中指定的字段。如何在C#中使用LINQ .Select时保持类型?
public List<Facility> GetFacilities() {
var facilities = new List<Facility>();
facilities = _facilityRepository.GetAll().ToList();
var facReturnList =
facilities.Where(x => x.Fac_Name = "Something")
.OrderBy(x => x.Fac_Name).ToList();
var facReturnList2 =
facReturnList.Select(x =>
new { ID = x.Fac_Name.Substring(0, 6),
Fac_Name = x.Fac_Name.Substring(0, 3) })
.Distinct().ToList();
return facReturnList2;
}
我试图new
后加入List<Facility>
,但它说,这些属性(ID
和Fac_Name
)的设施没有定义。
您可能会更好地使用Facility的模型而不是返回实体本身。此外,您通常可以通过在查询之间不使用'.ToList()'来修剪查询。前两个linq查询可能不需要对'ToList'的调用,除非您使用的独特不可转换为sql。 (我们是在谈论一个datacontext顺便说一句吗?) – Silvermind 2013-03-08 18:07:14
@Silvermind,认为你在这两个帐户上都是正确的,但我对这种技术是新的,因此我不能肯定地说这是一个“datacontext” – JamesRLamar 2013-03-08 18:15:24