gpt4 book ai didi

c# - 帮助 LINQ distinct()

转载 作者:太空狗 更新时间:2023-10-29 20:57:32 24 4
gpt4 key购买 nike

我有一个名为“Orders”的类,它具有“City”等属性。我正在尝试编写一个 LINQ 语句,该语句将从订单列表中获取所有不同的城市并将它们作为字符串列表返回。

这是我现在拥有的。

public List<string> GetOrderCities(List<Order> orders)
{
IEnumerable<string> cities= from o in orders
select o.City.Distinct().ToString();

return cities.ToList();

}

但是,当我通过传递一个订单列表来运行它时,我似乎没有得到任何返回。该列表是空的,它正在返回。我传递给它的命令都具有 City 值。我只是完全做错了吗?谢谢!

最佳答案

你错称了 Distinct()方法。

改成

return orders.Select(o => o.City).Distinct().ToList();

或者,使用查询理解语法:

return (from o in orders
select o.City
).Distinct().ToList();

(注意括号)

您的代码调用 DistinctCity 上属性本身,它是一个字符串。
String类(class)工具IEnumerable<char> , 此方法返回 IEnumerable<char>包含字符串中所有唯一的字符
然后你调用ToString()在这个可枚举(它是编译器从 System.Core.dll 生成的迭代器类型)上,它总是返回 System.Linq.Enumerable+d__81`1[System.Char] .

相反,您需要调用 .Distinct()IEnumerable<string> 上由 Select 返回方法。

关于c# - 帮助 LINQ distinct(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3970850/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com