我試圖返回一組使用子字符串修剪的獨特結果,但當我調用「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