我正在創建我的api來從任何城市返回cod_postal來製作一些鏈接的下拉組合。爲什麼我需要在GroupBy之前ToList
我在db中實現了一些cod_postal是重複的。所以我嘗試刪除它使用GroupBy
得到一些錯誤,直到我找到一個示例使用列表。 Sample
因此,我決定先創建一個List<dto>
,然後執行該組並通過代碼顯示解決我的重複問題。
問題是爲什麼我需要那.ToList()
加入DTO和GroupBy步驟?
public class cod_postalDTO
{
public int cod_postal_id { get; set; }
public string name { get; set; }
}
public class codPostalController : ApiController
{
private dbEntities db = new dbEntities();
public List<cod_postalDTO> Getcod_postal(int city_id)
{
List<cod_postalDTO> l_cod_postal = db.cod_postal
.Where(c => c.city_id == city_id)
.Select(c => new cod_postalDTO
{
cod_postal_id = c.cod_postal_id,
name = c.name
})
.OrderBy(o => o.name)
.ToList() // <== why i need this line?
.GroupBy(c => c.name)
.Select(grp => grp.First())
.ToList();
return l_cod_postal;
}
如果我不包括中間.ToList
得到了以下錯誤
薩爾瓦多方法方法「第一」獨唱SE puede城市搜救科莫operación德CONSULTA決賽。考慮到「先發制人」或「先發制人」的慣例。
這就像'First'方法只能用作最終操作,請考慮使用'FirstOrDefault'。
但 'FirstOrDefault' 不在這裏工作既
你是不是想的這一翻譯隱式蒙上了[可枚舉(https://msdn.microsoft.com/en-us/library/system.linq.enumerable%28v= vs.100%29.aspx)到一個列表? – lloyd
是什麼讓你覺得你需要它?由於您已經在使用'GroupBy',所以您當然不需要'OrderBy'。此外,您正在尋找['Distinct'](https://msdn.microsoft.com/en-us/library/vstudio/bb348436.aspx)方法。 –
沒有。 IEnumerable也有.GroupBy()。正如你所看到的最後一行也是.ToList() –