用LINQ命令我的集合的问题

时间:2012-06-13 13:35:07

标签: c# linq

我有以下内容:

var cities = _cityRepository.GetPk(partitionKey);
var sortedCities = cities.OrderBy(item => item.RowKey.Substring(0, 4))
                         .ThenBy(item => item.ShortTitle);
return sortedCities;

城市在哪里:ICollection<City>

这给了我一个错误

Cannot implicitly convert type 'System.Linq.IOrderedEnumerable<Storage.Models.City>' to 'System.Collections.Generic.ICollection<Storage.Models.City>'. An explicit conversion exists (are you missing a cast?)

有人可以帮我解决这个问题。我以为我可以运行LINQ来重新排序。

3 个答案:

答案 0 :(得分:4)

在末尾添加.ToList(),如下所示

var sortedCities = cities.OrderBy(item => item.RowKey.Substring(0, 4))
                         .ThenBy(item => item.ShortTitle).ToList();

可能您的方法必须返回IOrderedEnumerable

答案 1 :(得分:1)

“无法转换为指定类型”,请致电.ToList

var sortedCities = cities.OrderBy(item => item.RowKey.Substring(0, 4))
                                  .ThenBy(item => item.ShortTitle).ToList();

答案 2 :(得分:1)

您的方法似乎需要ICollection<Storage.Models.City>类型的返回值,但您返回IOrderedEnumerable<Storage.Models.City>,通常为IEnumerable<Storage.Models.City>

您可以更改方法的返回类型,也可以将返回值转换为ICollection,例如List ToList()