0

我有以下内容:

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 重新排序。

4

3 回答 3

4

在末尾添加.ToList()如下

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

可能你的方法必须返回IOrderedEnumerable

于 2012-06-13T13:37:18.207 回答
1

您的方法似乎期望返回类型的值,ICollection<Storage.Models.City>但您返回的IOrderedEnumerable<Storage.Models.City>通常是 a IEnumerable<Storage.Models.City>

您可以更改方法的返回类型,也可以将返回值转换为ICollection诸如Listwith之类的东西ToList()

于 2012-06-13T13:39:05.053 回答
1

“无法转换为指定类型”,调用.ToList

var sortedCities = cities.OrderBy(item => item.RowKey.Substring(0, 4))
                                  .ThenBy(item => item.ShortTitle).ToList();
于 2012-06-13T13:38:19.937 回答